Skip to content

Grovedbg build fix #319

Grovedbg build fix

Grovedbg build fix #319

Triggered via pull request July 10, 2024 00:04
Status Success
Total duration 7m 12s
Artifacts

coverage.yml

on: pull_request
Code Coverage
7m 4s
Code Coverage
Fit to window
Zoom out
Zoom in

Annotations

36 warnings
Code Coverage
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Code Coverage
The following actions uses Node.js version which is deprecated and will be forced to run on node20: actions/checkout@v2. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
unused `std::result::Result` that must be used: /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/macros/mod.rs#L670
warning: unused `std::result::Result` that must be used --> grovedb/src/replication.rs:86:13 | 86 | / writeln!( 87 | | f, 88 | | " prefix:{:?} -> path:{:?}", 89 | | hex::encode(prefix), 90 | | metadata_path_str 91 | | ); | |_____________^ | = note: this `Result` may be an `Err` variant, which should be handled = note: `#[warn(unused_must_use)]` on by default = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L958
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:958:10 | 958 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L888
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:888:10 | 888 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L862
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:862:10 | 862 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L335
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:335:37 | 335 | map.entry(last).or_insert_with(Vec::new).push(element); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L285
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:285:37 | 285 | map.entry(last).or_insert_with(Vec::new).push(key); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default = note: `#[warn(clippy::unwrap_or_default)]` on by default
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/verify.rs#L326
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/verify.rs:326:25 | 326 | limit_left.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = limit_left.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/verify.rs#L253
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/verify.rs:253:17 | 253 | limit_left.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = limit_left.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn = note: `#[warn(clippy::option_map_unit_fn)]` on by default
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice`: grovedb/src/operations/proof/util.rs#L308
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` --> grovedb/src/operations/proof/util.rs:308:10 | 308 | path.into_iter() | ^^^^^^^^^ help: call directly: `iter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref = note: `#[warn(clippy::into_iter_on_ref)]` on by default
this function has too many arguments (11/7): grovedb/src/element/query.rs#L692
warning: this function has too many arguments (11/7) --> grovedb/src/element/query.rs:692:5 | 692 | / fn query_item( 693 | | storage: &RocksDbStorage, 694 | | item: &QueryItem, 695 | | results: &mut Vec<QueryResultElement>, ... | 703 | | add_element_function: fn(PathQueryPushArgs) -> CostResult<(), Error>, 704 | | ) -> CostResult<(), Error> { | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
this `let...else` may be rewritten with the `?` operator: grovedb/src/element/helpers.rs#L375
warning: this `let...else` may be rewritten with the `?` operator --> grovedb/src/element/helpers.rs:375:9 | 375 | / let Some(value_cost) = self.get_specialized_cost().ok() else { 376 | | return None; 377 | | }; | |__________^ help: replace it with: `let value_cost = self.get_specialized_cost().ok()?;` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark = note: `#[warn(clippy::question_mark)]` on by default
writing `&Vec` instead of `&[_]` involves a new object where a slice will do: grovedb/src/element/helpers.rs#L304
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do --> grovedb/src/element/helpers.rs:304:14 | 304 | key: &Vec<u8>, | ^^^^^^^^ help: change this to: `&[u8]` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg = note: `#[warn(clippy::ptr_arg)]` on by default
the borrowed expression implements the required traits: grovedb/src/debugger.rs#L30
warning: the borrowed expression implements the required traits --> grovedb/src/debugger.rs:30:34 | 30 | fs::write(&grovedbg_zip, &GROVEDBG_ZIP).expect("cannot crate grovedbg.zip"); | ^^^^^^^^^^^^^ help: change this to: `GROVEDBG_ZIP` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
usage of `contains_key` followed by `insert` on a `HashMap`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L277
warning: usage of `contains_key` followed by `insert` on a `HashMap` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:277:13 | 277 | / if !self.cached_merks.contains_key(&base_path) { 278 | | GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( 279 | | &mut cost, 280 | | &base_path, ... | 287 | | .insert(base_path, estimated_layer_info.is_sum_tree); 288 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry = note: `#[warn(clippy::map_entry)]` on by default help: try | 277 ~ self.cached_merks.entry(base_path).or_insert_with(|| { 278 + GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( 279 + &mut cost, 280 + &base_path, 281 + estimated_layer_info 282 + .estimated_layer_count 283 + .estimated_to_be_empty(), 284 + estimated_layer_info.is_sum_tree, 285 + ); 286 + estimated_layer_info.is_sum_tree 287 + }); |
unnecessary use of `get(path).is_none()`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L231
warning: unnecessary use of `get(path).is_none()` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:231:30 | 231 | if self.cached_merks.get(path).is_none() { | ------------------^^^^^^^^^^^^^^^^^^^ | | | help: replace it with: `!self.cached_merks.contains_key(path)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default
variants `Execute`, `AverageCase`, and `WorstCase` are never constructed: grovedb/src/batch/mode.rs#L46
warning: variants `Execute`, `AverageCase`, and `WorstCase` are never constructed --> grovedb/src/batch/mode.rs:46:5 | 45 | pub enum BatchRunMode { | ------------ variants in this enum 46 | Execute, | ^^^^^^^ 47 | #[cfg(feature = "estimated_costs")] 48 | AverageCase(HashMap<KeyInfoPath, EstimatedLayerInformation>), | ^^^^^^^^^^^ 49 | #[cfg(feature = "estimated_costs")] 50 | WorstCase(HashMap<KeyInfoPath, WorstCaseLayerInformation>), | ^^^^^^^^^ | = note: `BatchRunMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
method `get_batch_run_mode` is never used: grovedb/src/batch/mod.rs#L686
warning: method `get_batch_run_mode` is never used --> grovedb/src/batch/mod.rs:686:8 | 683 | trait TreeCache<G, SR> { | --------- method in this trait ... 686 | fn get_batch_run_mode(&self) -> BatchRunMode; | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused import: `net::Ipv4Addr`: grovedb/src/debugger.rs#L3
warning: unused import: `net::Ipv4Addr` --> grovedb/src/debugger.rs:3:15 | 3 | use std::{fs, net::Ipv4Addr, sync::Weak}; | ^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
duplicated attribute: merk/src/estimated_costs/average_case_costs.rs#L77
warning: duplicated attribute --> merk/src/estimated_costs/average_case_costs.rs:77:7 | 77 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ | note: first defined here --> merk/src/estimated_costs/average_case_costs.rs:76:7 | 76 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ help: remove this attribute --> merk/src/estimated_costs/average_case_costs.rs:77:7 | 77 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes = note: `#[warn(clippy::duplicated_attributes)]` on by default
this function has too many arguments (8/7): merk/src/tree/mod.rs#L783
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:783:5 | 783 | / pub fn put_value_with_reference_value_hash_and_value_cost( 784 | | mut self, 785 | | value: Vec<u8>, 786 | | value_hash: CryptoHash, ... | 805 | | >, 806 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/tree/walk/mod.rs#L316
warning: this function has too many arguments (8/7) --> merk/src/tree/walk/mod.rs:316:5 | 316 | / pub fn put_value_with_reference_value_hash_and_value_cost( 317 | | mut self, 318 | | value: Vec<u8>, 319 | | value_hash: CryptoHash, ... | 338 | | >, 339 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (9/7): merk/src/tree/ops.rs#L690
warning: this function has too many arguments (9/7) --> merk/src/tree/ops.rs:690:5 | 690 | / fn recurse<K: AsRef<[u8]>, C, V, U, R>( 691 | | self, 692 | | batch: &MerkBatch<K>, 693 | | mid: usize, ... | 699 | | section_removal_bytes: &mut R, 700 | | ) -> CostResult<(Option<Self>, KeyUpdates), Error> | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L385
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:385:17 | 385 | / self.default_subquery_branch.subquery = 386 | | other_default_subquery_branch.subquery.clone(); | |__________________________________________________________________^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_subquery_branch.subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L336
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:336:25 | 336 | / self.default_subquery_branch.subquery = 337 | | other_default_subquery_branch.subquery.clone(); | |__________________________________________________________________________^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_subquery_branch.subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L253
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:253:13 | 253 | self.default_subquery_branch.subquery = other_default_branch_subquery.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_branch_subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
module has the same name as its containing module: merk/src/proofs/chunk.rs#L5
warning: module has the same name as its containing module --> merk/src/proofs/chunk.rs:5:1 | 5 | pub mod chunk; | ^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception = note: `#[warn(clippy::module_inception)]` on by default
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/mod.rs#L578
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/mod.rs:578:10 | 578 | ) -> (BTreeMap<Vec<u8>, CryptoHash>, BTreeMap<Vec<u8>, Vec<u8>>) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
this function has too many arguments (8/7): merk/src/merk/apply.rs#L277
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:277:5 | 277 | / pub fn apply_unchecked<KB, KA, C, V, U, R>( 278 | | &mut self, 279 | | batch: &MerkBatch<KB>, 280 | | aux: &AuxMerkBatch<KA>, ... | 285 | | section_removal_bytes: &mut R, 286 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/merk/apply.rs#L176
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:176:5 | 176 | / pub fn apply_with_costs_just_in_time_value_update<KB, KA>( 177 | | &mut self, 178 | | batch: &MerkBatch<KB>, 179 | | aux: &AuxMerkBatch<KA>, ... | 198 | | >, 199 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/chunks.rs#L346
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/chunks.rs:346:33 | 346 | fn next_chunk(&mut self) -> Option<Result<(Vec<Op>, Option<Vec<u8>>), Error>> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
trait `BTreeMapExtras` is never used: merk/src/proofs/query/map.rs#L244
warning: trait `BTreeMapExtras` is never used --> merk/src/proofs/query/map.rs:244:7 | 244 | trait BTreeMapExtras { | ^^^^^^^^^^^^^^
method `attempt_state_recovery` is never used: merk/src/merk/restore.rs#L390
warning: method `attempt_state_recovery` is never used --> merk/src/merk/restore.rs:390:8 | 66 | impl<'db, S: StorageContext<'db>> Restorer<S> { | --------------------------------------------- method in this implementation ... 390 | fn attempt_state_recovery(&mut self) -> Result<(), Error> { | ^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
'test' may be misspelled as 'tests': merk/src/tree/fuzz_tests.rs#L3
warning: 'test' may be misspelled as 'tests' --> merk/src/tree/fuzz_tests.rs:3:8 | 3 | #![cfg(tests)] | ^^^^^ help: did you mean: `test` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#maybe_misused_cfg = note: `#[warn(clippy::maybe_misused_cfg)]` on by default
unused import: `ExitStatus`: grovedb/build.rs#L6
warning: unused import: `ExitStatus` --> grovedb/build.rs:6:28 | 6 | process::{Command, ExitStatus, Output}, | ^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default