[INFO] cloning repository https://github.com/AngelPwG/rust-data-structures [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AngelPwG/rust-data-structures" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngelPwG%2Frust-data-structures", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngelPwG%2Frust-data-structures'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 317a4de4b37b3f9a53218929088a75facdc3da56 [INFO] linting AngelPwG/rust-data-structures against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngelPwG%2Frust-data-structures" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/AngelPwG/rust-data-structures [INFO] finished tweaking git repo https://github.com/AngelPwG/rust-data-structures [INFO] tweaked toml for git repo https://github.com/AngelPwG/rust-data-structures written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/AngelPwG/rust-data-structures on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/AngelPwG/rust-data-structures already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 71409d004eeb0dbe9167384863a8146300991a083dd663b4c8ba84e54ee5e651 [INFO] running `Command { std: "docker" "start" "-a" "71409d004eeb0dbe9167384863a8146300991a083dd663b4c8ba84e54ee5e651", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "71409d004eeb0dbe9167384863a8146300991a083dd663b4c8ba84e54ee5e651", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71409d004eeb0dbe9167384863a8146300991a083dd663b4c8ba84e54ee5e651", kill_on_drop: false }` [INFO] [stdout] 71409d004eeb0dbe9167384863a8146300991a083dd663b4c8ba84e54ee5e651 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c44d3271b602c67cf46f25a0189e5249ae1573d5ddae2521b9d63756287bccf7 [INFO] running `Command { std: "docker" "start" "-a" "c44d3271b602c67cf46f25a0189e5249ae1573d5ddae2521b9d63756287bccf7", kill_on_drop: false }` [INFO] [stderr] Checking data_structures v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bptree.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | NodeType::Leaf {data, ..} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `data: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bptree.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let mut node_mut = &mut *node.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QueueNode` is never constructed [INFO] [stdout] --> src/queue.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct QueueNode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Queue` is never constructed [INFO] [stdout] --> src/queue.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Queue { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `enqueue`, `dequeue`, and `show_queue` are never used [INFO] [stdout] --> src/queue.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl Queue { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] 13 | fn enqueue(&mut self, value: T) -> () { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn dequeue(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn show_queue(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TreeNode` is never constructed [INFO] [stdout] --> src/bst.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct TreeNode{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tree` is never constructed [INFO] [stdout] --> src/bst.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Tree{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `insert`, `inner_insert`, `print_in_order`, and `inner_print` are never used [INFO] [stdout] --> src/bst.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Tree{ [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 14 | pub fn insert(&mut self, value: T){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | fn inner_insert(node: &mut Option>>, value: T){ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn print_in_order(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn inner_print(node: &Option>>) { match node { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LEAF_T` is never used [INFO] [stdout] --> src/bptree.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const LEAF_T: u8 = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INTERNAL_T` is never used [INFO] [stdout] --> src/bptree.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const INTERNAL_T: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NodeRef` is never used [INFO] [stdout] --> src/bptree.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type NodeRef = Rc>>; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BPlusTree` is never constructed [INFO] [stdout] --> src/bptree.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct BPlusTree{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/bptree.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Node{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NodeType` is never used [INFO] [stdout] --> src/bptree.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum NodeType{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new_node`, `is_full`, and `split_child` are never used [INFO] [stdout] --> src/bptree.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Node{ [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 23 | pub fn new_node(t: u8, is_leaf: bool) -> NodeRef{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn split_child(&mut self, children_index: usize){ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/bptree.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl BPlusTree{ [INFO] [stdout] | ------------------------------------------ associated items in this implementation [INFO] [stdout] 75 | pub fn new() -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn insert(&mut self, key: u64, value: T) -> bool{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn insert_non_full(node: &mut NodeRef, key: u64, value: T) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn search(&self, key: u64) -> Option<(NodeRef, usize)>{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | fn search_in(node: NodeRef, key: u64) -> Option<(NodeRef, usize)>{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn print_recursive(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | fn print_recursively(node: &NodeRef, level: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn borrow_or_merge(node: NodeRef, index: usize) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn borrow_from_left(padre: NodeRef, hijo: NodeRef, izq: NodeRef, index: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | fn borrow_from_right(padre:NodeRef, hijo:NodeRef, der:NodeRef, index: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | fn merge_from_right(padre: NodeRef, hijo: NodeRef, der: NodeRef, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn delete(&mut self, key: u64){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn delete_in(node_rc: NodeRef, key: u64){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn update(&self, key: u64, record: T){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | fn update_in(node: NodeRef, key: u64, record: T){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/queue.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | fn enqueue(&mut self, value: T) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bst.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | None => return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 38 - None => return, [INFO] [stdout] 38 + None => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/bptree.rs:54:62 [INFO] [stdout] | [INFO] [stdout] 54 | ... self.keys.insert(children_index, second_mut.keys[0].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `second_mut.keys[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:96:54 [INFO] [stdout] | [INFO] [stdout] 96 | children.insert(0, Rc::clone(&root)); [INFO] [stdout] | ^^^^^ help: change this to: `root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/bptree.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | / match &node_ref.node_type { [INFO] [stdout] 192 | | NodeType::Internal{children} => { [INFO] [stdout] 193 | | for child in children { [INFO] [stdout] 194 | | Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let NodeType::Internal{children} = &node_ref.node_type { [INFO] [stdout] 192 + for child in children { [INFO] [stdout] 193 + Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `has_left.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 225 | } else if !has_right.is_none() && is_right_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `has_right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `has_left` after checking its variant with `is_none` [INFO] [stdout] --> src/bptree.rs:223:70 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 223 | Self::borrow_from_left(Rc::clone(&node), child.unwrap(), has_left.unwrap(), index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:303:37 [INFO] [stdout] | [INFO] [stdout] 303 | Some(node) => Rc::clone(&node), [INFO] [stdout] | ^^^^^ help: change this to: `node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:372:35 [INFO] [stdout] | [INFO] [stdout] 372 | Self::update_in(Rc::clone(&root_rc), key, record); [INFO] [stdout] | ^^^^^^^^ help: change this to: `root_rc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bptree.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | NodeType::Leaf {data, ..} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `data: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bptree.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let mut node_mut = &mut *node.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/bptree.rs:54:62 [INFO] [stdout] | [INFO] [stdout] 54 | ... self.keys.insert(children_index, second_mut.keys[0].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `second_mut.keys[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:96:54 [INFO] [stdout] | [INFO] [stdout] 96 | children.insert(0, Rc::clone(&root)); [INFO] [stdout] | ^^^^^ help: change this to: `root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/bptree.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | / match &node_ref.node_type { [INFO] [stdout] 192 | | NodeType::Internal{children} => { [INFO] [stdout] 193 | | for child in children { [INFO] [stdout] 194 | | Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let NodeType::Internal{children} = &node_ref.node_type { [INFO] [stdout] 192 + for child in children { [INFO] [stdout] 193 + Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `has_left.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 225 | } else if !has_right.is_none() && is_right_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `has_right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `has_left` after checking its variant with `is_none` [INFO] [stdout] --> src/bptree.rs:223:70 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 223 | Self::borrow_from_left(Rc::clone(&node), child.unwrap(), has_left.unwrap(), index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:303:37 [INFO] [stdout] | [INFO] [stdout] 303 | Some(node) => Rc::clone(&node), [INFO] [stdout] | ^^^^^ help: change this to: `node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:372:35 [INFO] [stdout] | [INFO] [stdout] 372 | Self::update_in(Rc::clone(&root_rc), key, record); [INFO] [stdout] | ^^^^^^^^ help: change this to: `root_rc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bptree.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | NodeType::Leaf {data, ..} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `data: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bptree.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | NodeType::Leaf {data, ..} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `data: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bptree.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let mut node_mut = &mut *node.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/bptree.rs:54:62 [INFO] [stdout] | [INFO] [stdout] 54 | ... self.keys.insert(children_index, second_mut.keys[0].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `second_mut.keys[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:96:54 [INFO] [stdout] | [INFO] [stdout] 96 | children.insert(0, Rc::clone(&root)); [INFO] [stdout] | ^^^^^ help: change this to: `root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bptree.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let mut node_mut = &mut *node.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QueueNode` is never constructed [INFO] [stdout] --> src/queue.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct QueueNode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Queue` is never constructed [INFO] [stdout] --> src/queue.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Queue { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `enqueue`, `dequeue`, and `show_queue` are never used [INFO] [stdout] --> src/queue.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl Queue { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] 13 | fn enqueue(&mut self, value: T) -> () { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn dequeue(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn show_queue(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TreeNode` is never constructed [INFO] [stdout] --> src/bst.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct TreeNode{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tree` is never constructed [INFO] [stdout] --> src/bst.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Tree{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `insert`, `inner_insert`, `print_in_order`, and `inner_print` are never used [INFO] [stdout] --> src/bst.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Tree{ [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 14 | pub fn insert(&mut self, value: T){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | fn inner_insert(node: &mut Option>>, value: T){ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn print_in_order(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn inner_print(node: &Option>>) { match node { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LEAF_T` is never used [INFO] [stdout] --> src/bptree.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const LEAF_T: u8 = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INTERNAL_T` is never used [INFO] [stdout] --> src/bptree.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const INTERNAL_T: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NodeRef` is never used [INFO] [stdout] --> src/bptree.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type NodeRef = Rc>>; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BPlusTree` is never constructed [INFO] [stdout] --> src/bptree.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct BPlusTree{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/bptree.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Node{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NodeType` is never used [INFO] [stdout] --> src/bptree.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum NodeType{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new_node`, `is_full`, and `split_child` are never used [INFO] [stdout] --> src/bptree.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Node{ [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 23 | pub fn new_node(t: u8, is_leaf: bool) -> NodeRef{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn split_child(&mut self, children_index: usize){ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/bptree.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl BPlusTree{ [INFO] [stdout] | ------------------------------------------ associated items in this implementation [INFO] [stdout] 75 | pub fn new() -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn insert(&mut self, key: u64, value: T) -> bool{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn insert_non_full(node: &mut NodeRef, key: u64, value: T) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn search(&self, key: u64) -> Option<(NodeRef, usize)>{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | fn search_in(node: NodeRef, key: u64) -> Option<(NodeRef, usize)>{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn print_recursive(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | fn print_recursively(node: &NodeRef, level: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn borrow_or_merge(node: NodeRef, index: usize) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn borrow_from_left(padre: NodeRef, hijo: NodeRef, izq: NodeRef, index: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | fn borrow_from_right(padre:NodeRef, hijo:NodeRef, der:NodeRef, index: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | fn merge_from_right(padre: NodeRef, hijo: NodeRef, der: NodeRef, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn delete(&mut self, key: u64){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn delete_in(node_rc: NodeRef, key: u64){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn update(&self, key: u64, record: T){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | fn update_in(node: NodeRef, key: u64, record: T){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/bptree.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | / match &node_ref.node_type { [INFO] [stdout] 192 | | NodeType::Internal{children} => { [INFO] [stdout] 193 | | for child in children { [INFO] [stdout] 194 | | Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let NodeType::Internal{children} = &node_ref.node_type { [INFO] [stdout] 192 + for child in children { [INFO] [stdout] 193 + Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/queue.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | fn enqueue(&mut self, value: T) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `has_left.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 225 | } else if !has_right.is_none() && is_right_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `has_right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `has_left` after checking its variant with `is_none` [INFO] [stdout] --> src/bptree.rs:223:70 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 223 | Self::borrow_from_left(Rc::clone(&node), child.unwrap(), has_left.unwrap(), index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bst.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | None => return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 38 - None => return, [INFO] [stdout] 38 + None => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:303:37 [INFO] [stdout] | [INFO] [stdout] 303 | Some(node) => Rc::clone(&node), [INFO] [stdout] | ^^^^^ help: change this to: `node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/bptree.rs:54:62 [INFO] [stdout] | [INFO] [stdout] 54 | ... self.keys.insert(children_index, second_mut.keys[0].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `second_mut.keys[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:96:54 [INFO] [stdout] | [INFO] [stdout] 96 | children.insert(0, Rc::clone(&root)); [INFO] [stdout] | ^^^^^ help: change this to: `root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:372:35 [INFO] [stdout] | [INFO] [stdout] 372 | Self::update_in(Rc::clone(&root_rc), key, record); [INFO] [stdout] | ^^^^^^^^ help: change this to: `root_rc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/bptree.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | / match &node_ref.node_type { [INFO] [stdout] 192 | | NodeType::Internal{children} => { [INFO] [stdout] 193 | | for child in children { [INFO] [stdout] 194 | | Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let NodeType::Internal{children} = &node_ref.node_type { [INFO] [stdout] 192 + for child in children { [INFO] [stdout] 193 + Self::print_recursively(&Rc::clone(child), level + 1); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `has_left.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bptree.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 225 | } else if !has_right.is_none() && is_right_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `has_right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `has_left` after checking its variant with `is_none` [INFO] [stdout] --> src/bptree.rs:223:70 [INFO] [stdout] | [INFO] [stdout] 222 | if !has_left.is_none() && is_left_empty { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 223 | Self::borrow_from_left(Rc::clone(&node), child.unwrap(), has_left.unwrap(), index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:303:37 [INFO] [stdout] | [INFO] [stdout] 303 | Some(node) => Rc::clone(&node), [INFO] [stdout] | ^^^^^ help: change this to: `node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bptree.rs:372:35 [INFO] [stdout] | [INFO] [stdout] 372 | Self::update_in(Rc::clone(&root_rc), key, record); [INFO] [stdout] | ^^^^^^^^ help: change this to: `root_rc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.47s [INFO] running `Command { std: "docker" "inspect" "c44d3271b602c67cf46f25a0189e5249ae1573d5ddae2521b9d63756287bccf7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c44d3271b602c67cf46f25a0189e5249ae1573d5ddae2521b9d63756287bccf7", kill_on_drop: false }` [INFO] [stdout] c44d3271b602c67cf46f25a0189e5249ae1573d5ddae2521b9d63756287bccf7