[INFO] cloning repository https://github.com/wenLiangcan/leetcode.rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wenLiangcan/leetcode.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FwenLiangcan%2Fleetcode.rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FwenLiangcan%2Fleetcode.rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5f36412cf370a3cf0562125181c3a557739e507c [INFO] linting wenLiangcan/leetcode.rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FwenLiangcan%2Fleetcode.rs" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/wenLiangcan/leetcode.rs [INFO] finished tweaking git repo https://github.com/wenLiangcan/leetcode.rs [INFO] tweaked toml for git repo https://github.com/wenLiangcan/leetcode.rs written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/wenLiangcan/leetcode.rs 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/wenLiangcan/leetcode.rs 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] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde_json v1.0.70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] eec4b3241829dc5d3dc42bb38c327a9e2ba3f6788ec7a7f37c506098d4a6b3b1 [INFO] running `Command { std: "docker" "start" "-a" "eec4b3241829dc5d3dc42bb38c327a9e2ba3f6788ec7a7f37c506098d4a6b3b1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "eec4b3241829dc5d3dc42bb38c327a9e2ba3f6788ec7a7f37c506098d4a6b3b1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eec4b3241829dc5d3dc42bb38c327a9e2ba3f6788ec7a7f37c506098d4a6b3b1", kill_on_drop: false }` [INFO] [stdout] eec4b3241829dc5d3dc42bb38c327a9e2ba3f6788ec7a7f37c506098d4a6b3b1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] ba92eeb1e59e9ee9d933941b554190d0e2452c05c7435428dea5184c687bcc17 [INFO] running `Command { std: "docker" "start" "-a" "ba92eeb1e59e9ee9d933941b554190d0e2452c05c7435428dea5184c687bcc17", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.32 [INFO] [stderr] Compiling syn v1.0.81 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Compiling serde_json v1.0.70 [INFO] [stderr] Checking itoa v0.4.8 [INFO] [stderr] Checking leetcode v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/e_83_remove_duplicates_from_sorted_list.rs:29:26 [INFO] [stdout] | [INFO] [stdout] 29 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/e_203_remove_linked_list_elements.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/e_206_reverse_linked_list.rs:39:26 [INFO] [stdout] | [INFO] [stdout] 39 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/m_24_swap_nodes_in_pairs.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/m_61_rotate_list.rs:28:26 [INFO] [stdout] | [INFO] [stdout] 28 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/m_147_insertion_sort_list.rs:43:26 [INFO] [stdout] | [INFO] [stdout] 43 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ll` [INFO] [stdout] --> src/m_148_sort_list.rs:40:26 [INFO] [stdout] | [INFO] [stdout] 40 | use leetcode::{ListNode, ll}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/e_83_remove_duplicates_from_sorted_list.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | let mut next = current.next.as_mut().unwrap(); [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: unused variable: `n` [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:90:66 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [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/m_48_rotate_image.rs:102:22 [INFO] [stdout] | [INFO] [stdout] 102 | let (mut r_n, mut c_n) = rotate_n(rank, level, r, c, n); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/m_48_rotate_image.rs:102:31 [INFO] [stdout] | [INFO] [stdout] 102 | let (mut r_n, mut c_n) = rotate_n(rank, level, r, c, n); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | let mut start = 0; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `two_sum` is never used [INFO] [stdout] --> src/e_1_two_sum.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn two_sum(nums: Vec, target: i32) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid` is never used [INFO] [stdout] --> src/e_20_valid_parentheses.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn is_valid(s: String) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_two_lists` is never used [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn merge_two_lists(l1: Option>, l2: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_ending` is never used [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:115:4 [INFO] [stdout] | [INFO] [stdout] 115 | fn get_ending(head: &mut ListNode) -> &mut ListNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_sub_array` is never used [INFO] [stdout] --> src/e_53_maximum_subarray.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn max_sub_array(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_duplicates` is never used [INFO] [stdout] --> src/e_83_remove_duplicates_from_sorted_list.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn delete_duplicates(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge` is never used [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_cheat` is never used [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:4 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inorder_traversal` is never used [INFO] [stdout] --> src/e_94_binary_tree_inorder_traversal.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn inorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_symmetric` is never used [INFO] [stdout] --> src/e_101_symmetric_tree.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn is_symmetric(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_symmetric_rec` is never used [INFO] [stdout] --> src/e_101_symmetric_tree.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn is_symmetric_rec(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_symmetric_rec_inner` is never used [INFO] [stdout] --> src/e_101_symmetric_tree.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn is_symmetric_rec_inner(left: Option>>, right: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_depth` is never used [INFO] [stdout] --> src/e_104_maximum_depth_of_binary_tree.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn max_depth(root: Option>>) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_depth_rec` is never used [INFO] [stdout] --> src/e_104_maximum_depth_of_binary_tree.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn max_depth_rec(root: Option>>, acc: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_path_sum` is never used [INFO] [stdout] --> src/e_112_path_sum.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn has_path_sum(root: Option>>, target_sum: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate` is never used [INFO] [stdout] --> src/e_118_pascals_triangle.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn generate(num_rows: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_row` is never used [INFO] [stdout] --> src/e_119_pascals_triangle_ii.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn get_row(row_index: i32) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_profit` is never used [INFO] [stdout] --> src/e_121_best_time_to_buy_and_sell_stock.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn max_profit(prices: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `single_number` is never used [INFO] [stdout] --> src/e_136_single_number.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn single_number(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `preorder_traversal` is never used [INFO] [stdout] --> src/e_144_binary_tree_preorder_traversal.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn preorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Pos` is never used [INFO] [stdout] --> src/e_145_binary_tree_postorder_traversal.rs:84:6 [INFO] [stdout] | [INFO] [stdout] 84 | enum Pos { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `postorder_traversal` is never used [INFO] [stdout] --> src/e_145_binary_tree_postorder_traversal.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn postorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `majority_element` is never used [INFO] [stdout] --> src/e_169_majority_element.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn majority_element(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_elements` is never used [INFO] [stdout] --> src/e_203_remove_linked_list_elements.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn remove_elements(head: Option>, val: i32) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_list` is never used [INFO] [stdout] --> src/e_206_reverse_linked_list.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn reverse_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `contains_duplicate` is never used [INFO] [stdout] --> src/e_217_contains_duplicate.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn contains_duplicate(nums: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `invert_tree` is never used [INFO] [stdout] --> src/e_226_invert_binary_tree.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn invert_tree(root: Option>>) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyQueue` is never constructed [INFO] [stdout] --> src/e_232_implement_queue_using_stacks.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | struct MyQueue { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, `peek`, and `empty` are never used [INFO] [stdout] --> src/e_232_implement_queue_using_stacks.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 93 | impl MyQueue { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 94 | [INFO] [stdout] 95 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn push(&mut self, x: i32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn pop(&mut self) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn peek(&mut self) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | fn empty(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lowest_common_ancestor` is never used [INFO] [stdout] --> src/e_235_lowest_common_ancestor_of_a_binary_search_tree.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn lowest_common_ancestor(root: Option>>, p: Option>>, q: Option>... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_anagram` is never used [INFO] [stdout] --> src/e_242_valid_anagram.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn is_anagram(s: String, t: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `intersect` is never used [INFO] [stdout] --> src/e_350_intersection_of_two_arrays.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn intersect(nums1: Vec, nums2: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_construct` is never used [INFO] [stdout] --> src/e_383_ransom_note.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn can_construct(ransom_note: String, magazine: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_intersect` is never used [INFO] [stdout] --> src/e_383_ransom_note.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn count_intersect(nums1: String, nums2: String) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_uniq_char` is never used [INFO] [stdout] --> src/e_387_first_unique_character_in_a_string.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn first_uniq_char(s: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matrix_reshape` is never used [INFO] [stdout] --> src/e_566_reshape_the_matrix.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn matrix_reshape(mat: Vec>, r: i32, c: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_target` is never used [INFO] [stdout] --> src/e_653_two_sum_iv_input_is_a_bst.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn find_target(root: Option>>, k: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_bst` is never used [INFO] [stdout] --> src/e_700_search_in_a_binary_search_tree.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn search_bst(root: Option>>, val: i32) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entry` is never constructed [INFO] [stdout] --> src/e_706_design_hashmap.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | struct Entry { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/e_706_design_hashmap.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 93 | impl Entry { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 94 | fn new(key: i32, value: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyHashMap` is never constructed [INFO] [stdout] --> src/e_706_design_hashmap.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | struct MyHashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/e_706_design_hashmap.rs:120:8 [INFO] [stdout] | [INFO] [stdout] 118 | impl MyHashMap { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 119 | [INFO] [stdout] 120 | fn init_buckets(size: usize) -> Vec>> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | fn hash(&self, key: i32) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn rehash(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | fn put_entry(buckets: &mut Vec>>, key: i32, value: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | fn put(&mut self, key: i32, value: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | fn get(&self, key: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | fn remove(&mut self, key: i32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:245:4 [INFO] [stdout] | [INFO] [stdout] 245 | fn id(v: T) -> Parser [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:254:4 [INFO] [stdout] | [INFO] [stdout] 254 | fn map(f: impl Fn(T1) -> T2 + 'static, p: Parser) -> Parser [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequence` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn sequence(ps: Vec>) -> ParserOnce> [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ErrMsg` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:288:6 [INFO] [stdout] | [INFO] [stdout] 288 | type ErrMsg = String; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ParseResult` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:289:6 [INFO] [stdout] | [INFO] [stdout] 289 | type ParseResult = Result<(T, String), (ErrMsg, String)>; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Parser` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:290:6 [INFO] [stdout] | [INFO] [stdout] 290 | type Parser = Box ParseResult>; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ParserOnce` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:291:6 [INFO] [stdout] | [INFO] [stdout] 291 | type ParserOnce = Box ParseResult>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `p_char` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:293:4 [INFO] [stdout] | [INFO] [stdout] 293 | fn p_char(c: char) -> Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and_then` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn and_then(p1: ParserOnce, p2: ParserOnce) -> ParserOnce<(T1, T2)> [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or_else` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:320:4 [INFO] [stdout] | [INFO] [stdout] 320 | fn or_else(p1: Parser, p2: Parser) -> Parser [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `any` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:332:4 [INFO] [stdout] | [INFO] [stdout] 332 | fn any(ps: Vec>) -> Parser [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `any_of_chars` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:344:4 [INFO] [stdout] | [INFO] [stdout] 344 | fn any_of_chars(chars: impl Iterator) -> Parser { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `maybe` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:348:4 [INFO] [stdout] | [INFO] [stdout] 348 | fn maybe(p: Parser) -> Parser> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `many` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:360:4 [INFO] [stdout] | [INFO] [stdout] 360 | fn many(p: Parser) -> ParserOnce> [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `once` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:376:4 [INFO] [stdout] | [INFO] [stdout] 376 | fn once(p: Parser) -> ParserOnce [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `my_atoi` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:384:8 [INFO] [stdout] | [INFO] [stdout] 384 | pub fn my_atoi(s: String) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `three_sum` is never used [INFO] [stdout] --> src/m_15_three_sum.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn three_sum(nums: Vec) -> Vec> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swap_pairs` is never used [INFO] [stdout] --> src/m_24_swap_nodes_in_pairs.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn swap_pairs(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_sudoku` is never used [INFO] [stdout] --> src/m_36_valid_sudoku.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn is_valid_sudoku(board: Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate` is never used [INFO] [stdout] --> src/m_48_rotate_image.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_n` is never used [INFO] [stdout] --> src/m_48_rotate_image.rs:112:4 [INFO] [stdout] | [INFO] [stdout] 112 | fn rotate_n(rank: usize, level: usize, r: usize, c: usize, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge` is never used [INFO] [stdout] --> src/m_56_merge_intervals.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn merge(intervals: Vec>) -> Vec> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_matrix` is never used [INFO] [stdout] --> src/m_59_spiral_matrix_ii.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn generate_matrix(n: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_n` is never used [INFO] [stdout] --> src/m_59_spiral_matrix_ii.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn rotate_n(lower_bound: usize, upper_bound: usize, r: usize, c: usize, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `len` is never used [INFO] [stdout] --> src/m_61_rotate_list.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn len(head: &ListNode) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_at` is never used [INFO] [stdout] --> src/m_61_rotate_list.rs:101:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn split_at(head: &mut ListNode, index: usize) -> ListNode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append` is never used [INFO] [stdout] --> src/m_61_rotate_list.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn append(head: &mut ListNode, node: ListNode) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_right` is never used [INFO] [stdout] --> src/m_61_rotate_list.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn rotate_right(head: Option>, k: i32) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plus_one` is never used [INFO] [stdout] --> src/m_66_plus_one.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn plus_one(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plus_one_version_1` is never used [INFO] [stdout] --> src/m_66_plus_one.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn plus_one_version_1(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plus_one_optimized` is never used [INFO] [stdout] --> src/m_66_plus_one.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn plus_one_optimized(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_matrix` is never used [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn search_matrix(matrix: Vec>, target: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_colors` is never used [INFO] [stdout] --> src/m_75_sort_colors.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn sort_colors(nums: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quick_sort` is never used [INFO] [stdout] --> src/m_75_sort_colors.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn quick_sort(nums: &mut Vec, lo: usize, hi: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_bst` is never used [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn is_valid_bst(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_bst_inner` is never used [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn is_valid_bst_inner(root: Option>>, lower: Option, upper: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Pos` is never used [INFO] [stdout] --> src/m_102_binary_tree_level_order_traversal.rs:62:6 [INFO] [stdout] | [INFO] [stdout] 62 | enum Pos { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `level_order` is never used [INFO] [stdout] --> src/m_102_binary_tree_level_order_traversal.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn level_order(root: Option>>) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insertion_sort_list` is never used [INFO] [stdout] --> src/m_147_insertion_sort_list.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn insertion_sort_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insert_sorted` is never used [INFO] [stdout] --> src/m_147_insertion_sort_list.rs:90:4 [INFO] [stdout] | [INFO] [stdout] 90 | fn insert_sorted(head: Option>, mut node: ListNode) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_list` is never used [INFO] [stdout] --> src/m_148_sort_list.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn sort_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_sort` is never used [INFO] [stdout] --> src/m_148_sort_list.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn merge_sort(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_sorted` is never used [INFO] [stdout] --> src/m_148_sort_list.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn fold_sorted(mut v: Vec>>) -> Vec>> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_sorted` is never used [INFO] [stdout] --> src/m_148_sort_list.rs:125:4 [INFO] [stdout] | [INFO] [stdout] 125 | fn merge_sorted(left: Option>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_ending` is never used [INFO] [stdout] --> src/m_148_sort_list.rs:180:4 [INFO] [stdout] | [INFO] [stdout] 180 | fn get_ending(head: &mut ListNode) -> &mut ListNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_matrix` is never used [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn search_matrix(matrix: Vec>, target: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_vec` is never used [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insert_into_bst` is never used [INFO] [stdout] --> src/m_701_insert_into_a_binary_search_tree.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn insert_into_bst(root: Option>>, val: i32) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | while let Some(_) = current.next { [INFO] [stdout] | ----------^^^^^^^--------------- help: try: `while current.next.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:90:21 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 90 - pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 90 + pub fn merge(nums1: &mut [i32], m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | start += 1; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] = note: `#[warn(clippy::mut_range_bound)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | left_len += 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 111 + fn merge_cheat(nums1: &mut [i32], m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:53 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 111 + fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut [i32], n: i32) { [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/e_94_binary_tree_inorder_traversal.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | / match root { [INFO] [stdout] 87 | | Some(mut current) => { [INFO] [stdout] 88 | | let mut roots: Vec>> = vec![]; [INFO] [stdout] 89 | | 'outer: loop { [INFO] [stdout] ... | [INFO] [stdout] 117 | | _ => () [INFO] [stdout] 118 | | } [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] 86 ~ if let Some(mut current) = root { [INFO] [stdout] 87 + let mut roots: Vec>> = vec![]; [INFO] [stdout] 88 + 'outer: loop { [INFO] [stdout] 89 + if (*current).borrow().left.is_some() { [INFO] [stdout] 90 + roots.push(Rc::clone(¤t)); [INFO] [stdout] 91 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 92 + current = left; [INFO] [stdout] 93 + } else { [INFO] [stdout] 94 + v.push((*current).borrow().val); [INFO] [stdout] 95 + if (*current).borrow().right.is_some() { [INFO] [stdout] 96 + let right = Rc::clone((*current).borrow().right.as_ref().unwrap()); [INFO] [stdout] 97 + current = right; [INFO] [stdout] 98 + } else { [INFO] [stdout] 99 + 'inner: loop { [INFO] [stdout] 100 + if let Some(root) = roots.pop() { [INFO] [stdout] 101 + v.push((*root).borrow().val); [INFO] [stdout] 102 + if (*root).borrow().right.is_some() { [INFO] [stdout] 103 + current = Rc::clone((*root).borrow().right.as_ref().unwrap()); [INFO] [stdout] 104 + continue 'outer; [INFO] [stdout] 105 + } else { [INFO] [stdout] 106 + continue 'inner; [INFO] [stdout] 107 + } [INFO] [stdout] 108 + } else { [INFO] [stdout] 109 + break 'outer; [INFO] [stdout] 110 + } [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] 113 + } [INFO] [stdout] 114 + } [INFO] [stdout] 115 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_119_pascals_triangle_ii.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return vec![1]; [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: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return vec![1]; [INFO] [stdout] 55 + vec![1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/e_136_single_number.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | if let None = m.remove(i) { [INFO] [stdout] | -------^^^^-------------- help: try: `if m.remove(i).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [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/e_144_binary_tree_preorder_traversal.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / match root { [INFO] [stdout] 77 | | Some(mut current) => { [INFO] [stdout] 78 | | let mut rights: Vec>> = vec![]; [INFO] [stdout] 79 | | loop { [INFO] [stdout] ... | [INFO] [stdout] 99 | | _ => () [INFO] [stdout] 100 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 76 ~ if let Some(mut current) = root { [INFO] [stdout] 77 + let mut rights: Vec>> = vec![]; [INFO] [stdout] 78 + loop { [INFO] [stdout] 79 + v.push((*current).borrow().val); [INFO] [stdout] 80 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 81 + if (*current).borrow().left.is_some() { [INFO] [stdout] 82 + if let Some(r) = right { [INFO] [stdout] 83 + rights.push(r); [INFO] [stdout] 84 + } [INFO] [stdout] 85 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 86 + current = left; [INFO] [stdout] 87 + } else if let Some(r) = right { [INFO] [stdout] 88 + current = r; [INFO] [stdout] 89 + } else { [INFO] [stdout] 90 + if let Some(r) = rights.pop() { [INFO] [stdout] 91 + current = r; [INFO] [stdout] 92 + } else { [INFO] [stdout] 93 + break; [INFO] [stdout] 94 + } [INFO] [stdout] 95 + } [INFO] [stdout] 96 + } [INFO] [stdout] 97 + } [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/e_145_binary_tree_postorder_traversal.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / match root { [INFO] [stdout] 92 | | Some(mut current) => { [INFO] [stdout] 93 | | let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 94 | | 'outer: loop { [INFO] [stdout] ... | [INFO] [stdout] 127 | | _ => () [INFO] [stdout] 128 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ if let Some(mut current) = root { [INFO] [stdout] 92 + let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 93 + 'outer: loop { [INFO] [stdout] 94 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 95 + if (*current).borrow().left.is_some() { [INFO] [stdout] 96 + right_and_roots.push((Pos::Root, Rc::clone(¤t))); [INFO] [stdout] 97 + if let Some(ref r) = right { [INFO] [stdout] 98 + right_and_roots.push((Pos::Right, Rc::clone(r))); [INFO] [stdout] 99 + } [INFO] [stdout] 100 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 101 + current = left; [INFO] [stdout] 102 + } else if let Some(ref r) = right { [INFO] [stdout] 103 + right_and_roots.push((Pos::Root, Rc::clone(¤t))); [INFO] [stdout] 104 + current = Rc::clone(r); [INFO] [stdout] 105 + } else { [INFO] [stdout] 106 + v.push((*current).borrow().val); [INFO] [stdout] 107 + 'inner: loop { [INFO] [stdout] 108 + if let Some((pos, node)) = right_and_roots.pop() { [INFO] [stdout] 109 + match pos { [INFO] [stdout] 110 + Pos::Root => { [INFO] [stdout] 111 + v.push((*node).borrow().val); [INFO] [stdout] 112 + continue 'inner; [INFO] [stdout] 113 + }, [INFO] [stdout] 114 + Pos::Right => { [INFO] [stdout] 115 + current = Rc::clone(&node); [INFO] [stdout] 116 + continue 'outer; [INFO] [stdout] 117 + } [INFO] [stdout] 118 + } [INFO] [stdout] 119 + } else { [INFO] [stdout] 120 + break 'outer; [INFO] [stdout] 121 + } [INFO] [stdout] 122 + } [INFO] [stdout] 123 + } [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/e_203_remove_linked_list_elements.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | if let Some(_) = rest { [INFO] [stdout] | -------^^^^^^^------- help: try: `if rest.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_217_contains_duplicate.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | return false; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return false; [INFO] [stdout] 54 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_242_valid_anagram.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | let mut s = s.chars().into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_242_valid_anagram.rs:46:21 [INFO] [stdout] | [INFO] [stdout] 46 | let mut t = t.chars().into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `t.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [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/e_350_intersection_of_two_arrays.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | / match map.entry(i) { [INFO] [stdout] 78 | | Entry::Occupied(c) => { [INFO] [stdout] 79 | | let c = c.into_mut(); [INFO] [stdout] 80 | | if *c > 0 { [INFO] [stdout] ... | [INFO] [stdout] 85 | | _ => () [INFO] [stdout] 86 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Entry::Occupied(c) = map.entry(i) { [INFO] [stdout] 78 + let c = c.into_mut(); [INFO] [stdout] 79 + if *c > 0 { [INFO] [stdout] 80 + out.push(i); [INFO] [stdout] 81 + *c -= 1; [INFO] [stdout] 82 + } [INFO] [stdout] 83 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_383_ransom_note.rs:61:41 [INFO] [stdout] | [INFO] [stdout] 61 | let mut map: HashMap = nums1.chars().into_iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `nums1.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [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/e_383_ransom_note.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | / match map.entry(i) { [INFO] [stdout] 72 | | Entry::Occupied(c) => { [INFO] [stdout] 73 | | let c = c.into_mut(); [INFO] [stdout] 74 | | if *c > 0 { [INFO] [stdout] ... | [INFO] [stdout] 79 | | _ => () [INFO] [stdout] 80 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 71 ~ if let Entry::Occupied(c) = map.entry(i) { [INFO] [stdout] 72 + let c = c.into_mut(); [INFO] [stdout] 73 + if *c > 0 { [INFO] [stdout] 74 + count += 1; [INFO] [stdout] 75 + *c -= 1; [INFO] [stdout] 76 + } [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_387_first_unique_character_in_a_string.rs:51:19 [INFO] [stdout] | [INFO] [stdout] 51 | for (i, c) in s.chars().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to usize [INFO] [stdout] --> src/e_706_design_hashmap.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | key.abs() as usize % capacity [INFO] [stdout] | ^^^^^^^^^ help: replace with: `key.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_706_design_hashmap.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | return true; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - return true; [INFO] [stdout] 174 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_706_design_hashmap.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | fn put_entry(buckets: &mut Vec>>, key: i32, value: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 156 - fn put_entry(buckets: &mut Vec>>, key: i32, value: i32) -> bool { [INFO] [stdout] 156 + fn put_entry(buckets: &mut [Option>], key: i32, value: i32) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:161:20 [INFO] [stdout] | [INFO] [stdout] 161 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | (*e).value = value; [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | } else if (*e).next.is_some() { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | let next = (*e).next.as_mut().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:168:21 [INFO] [stdout] | [INFO] [stdout] 168 | (*e).next = Some(Box::new(Entry::new(key, value))); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_706_design_hashmap.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return -1; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 - return -1; [INFO] [stdout] 195 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:189:16 [INFO] [stdout] | [INFO] [stdout] 189 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | return (*e).value; [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:192:26 [INFO] [stdout] | [INFO] [stdout] 192 | bucket = (*e).next.as_ref(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:202:16 [INFO] [stdout] | [INFO] [stdout] 202 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:203:28 [INFO] [stdout] | [INFO] [stdout] 203 | let next = (*e).next.take(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:207:23 [INFO] [stdout] | [INFO] [stdout] 207 | while (*e).next.is_some() { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:208:32 [INFO] [stdout] | [INFO] [stdout] 208 | let next = (*e).next.as_ref().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:209:24 [INFO] [stdout] | [INFO] [stdout] 209 | if (*next).key == key { [INFO] [stdout] | ^^^^^^^ help: try: `next` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:210:34 [INFO] [stdout] | [INFO] [stdout] 210 | let nn = (*e.next.as_mut().unwrap()).next.take(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `e.next.as_mut().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:212:29 [INFO] [stdout] | [INFO] [stdout] 212 | ... (*e).next.replace(nn); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | ... (*e).next.take(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:219:29 [INFO] [stdout] | [INFO] [stdout] 219 | e = (*e).next.as_mut().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/m_8_string_to_integer.rs:272:24 [INFO] [stdout] | [INFO] [stdout] 272 | ps.into_iter().fold(Ok((vec![], s)), |acc, p| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 273 | | match acc { [INFO] [stdout] 274 | | Ok((mut v, remain)) => match p(remain) { [INFO] [stdout] 275 | | Ok((t, remain)) => { [INFO] [stdout] ... | [INFO] [stdout] 283 | | }) [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((vec![], s), |acc, p| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/m_8_string_to_integer.rs:380:14 [INFO] [stdout] | [INFO] [stdout] 380 | Box::new(move |s| p(s)) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace the closure with the function itself: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/m_8_string_to_integer.rs:392:13 [INFO] [stdout] | [INFO] [stdout] 392 | / if numbers.len() > 0 { [INFO] [stdout] 393 | | let is_negative = match sign { [INFO] [stdout] 394 | | Some('-') => true, [INFO] [stdout] 395 | | _ => false [INFO] [stdout] ... | [INFO] [stdout] 406 | | 0 [INFO] [stdout] 407 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 391 ~ Ok(((_, (sign, mut numbers)), _)) [INFO] [stdout] 392 ~ if numbers.len() > 0 => { [INFO] [stdout] 393 | let is_negative = match sign { [INFO] [stdout] ... [INFO] [stdout] 404 | } [INFO] [stdout] 405 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/m_8_string_to_integer.rs:392:16 [INFO] [stdout] | [INFO] [stdout] 392 | if numbers.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!numbers.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/m_8_string_to_integer.rs:393:35 [INFO] [stdout] | [INFO] [stdout] 393 | let is_negative = match sign { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 394 | | Some('-') => true, [INFO] [stdout] 395 | | _ => false [INFO] [stdout] 396 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 393 - let is_negative = match sign { [INFO] [stdout] 394 - Some('-') => true, [INFO] [stdout] 395 - _ => false [INFO] [stdout] 396 - }; [INFO] [stdout] 393 + let is_negative = matches!(sign, Some('-')); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `board` [INFO] [stdout] --> src/m_36_valid_sudoku.rs:113:18 [INFO] [stdout] | [INFO] [stdout] 113 | for c in 0 .. 9 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 113 - for c in 0 .. 9 { [INFO] [stdout] 113 + for in board.iter().take(9) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `board` [INFO] [stdout] --> src/m_36_valid_sudoku.rs:116:22 [INFO] [stdout] | [INFO] [stdout] 116 | for r in 0 .. 9 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 116 - for r in 0 .. 9 { [INFO] [stdout] 116 + for in board.iter().take(9) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/m_48_rotate_image.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 93 - pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] 93 + pub fn rotate(matrix: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `matrix[r_n][c_n]` and `current` manually [INFO] [stdout] --> src/m_48_rotate_image.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | / let tmp = matrix[r_n][c_n]; [INFO] [stdout] 104 | | matrix[r_n][c_n] = current; [INFO] [stdout] 105 | | current = tmp; [INFO] [stdout] | |______________________________^ help: try: `std::mem::swap(&mut matrix[r_n][c_n], &mut current);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/m_61_rotate_list.rs:125:27 [INFO] [stdout] | [INFO] [stdout] 125 | let len = len(&*old_head); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&old_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/m_61_rotate_list.rs:129:45 [INFO] [stdout] | [INFO] [stdout] 129 | let mut new_head = split_at(&mut *old_head, i - 1); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&mut old_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return false; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return false; [INFO] [stdout] 93 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `v` [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:78:42 [INFO] [stdout] | [INFO] [stdout] 78 | ... for j in 1 .. v.len() - 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 78 - for j in 1 .. v.len() - 1 { [INFO] [stdout] 78 + for in v.iter().take(v.len() - 1).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:85:20 [INFO] [stdout] | [INFO] [stdout] 85 | if !(left.borrow().val < val) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(left.borrow().val >= val)` [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/m_98_validate_binary_search_tree.rs:89:24 [INFO] [stdout] | [INFO] [stdout] 89 | if !(left.borrow().val > l) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(left.borrow().val <= l)` [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: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:95:20 [INFO] [stdout] | [INFO] [stdout] 95 | if !(right.borrow().val > val) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(right.borrow().val <= val)` [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: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:99:24 [INFO] [stdout] | [INFO] [stdout] 99 | if !(right.borrow().val < u) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(right.borrow().val >= u)` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/m_102_binary_tree_level_order_traversal.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | / match root { [INFO] [stdout] 70 | | Some(mut current) => { [INFO] [stdout] 71 | | let mut level = 0usize; [INFO] [stdout] 72 | | let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] ... | [INFO] [stdout] 115 | | _ => () [INFO] [stdout] 116 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 69 ~ if let Some(mut current) = root { [INFO] [stdout] 70 + let mut level = 0usize; [INFO] [stdout] 71 + let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 72 + 'outer: loop { [INFO] [stdout] 73 + if v.len() < level + 1 { [INFO] [stdout] 74 + v.push(vec![]); [INFO] [stdout] 75 + } [INFO] [stdout] 76 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 77 + if (*current).borrow().left.is_some() { [INFO] [stdout] 78 + right_and_roots.push((Pos::Root(level), Rc::clone(¤t))); [INFO] [stdout] 79 + level += 1; [INFO] [stdout] 80 + if let Some(ref r) = right { [INFO] [stdout] 81 + right_and_roots.push((Pos::Right(level), Rc::clone(r))); [INFO] [stdout] 82 + } [INFO] [stdout] 83 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 84 + current = left; [INFO] [stdout] 85 + } else if let Some(ref r) = right { [INFO] [stdout] 86 + right_and_roots.push((Pos::Root(level), Rc::clone(¤t))); [INFO] [stdout] 87 + level += 1; [INFO] [stdout] 88 + current = Rc::clone(r); [INFO] [stdout] 89 + } else { [INFO] [stdout] 90 + v[level].push((*current).borrow().val); [INFO] [stdout] 91 + 'inner: loop { [INFO] [stdout] 92 + if let Some((pos, node)) = right_and_roots.pop() { [INFO] [stdout] 93 + match pos { [INFO] [stdout] 94 + Pos::Root(l) => { [INFO] [stdout] 95 + if v.len() < l + 1 { [INFO] [stdout] 96 + v.push(vec![]); [INFO] [stdout] 97 + } [INFO] [stdout] 98 + v[l].push((*node).borrow().val); [INFO] [stdout] 99 + continue 'inner; [INFO] [stdout] 100 + }, [INFO] [stdout] 101 + Pos::Right(l) => { [INFO] [stdout] 102 + level = l; [INFO] [stdout] 103 + current = Rc::clone(&node); [INFO] [stdout] 104 + continue 'outer; [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] 107 + } else { [INFO] [stdout] 108 + break 'outer; [INFO] [stdout] 109 + } [INFO] [stdout] 110 + } [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] 113 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:90:15 [INFO] [stdout] | [INFO] [stdout] 90 | while let Some(_) = current { [INFO] [stdout] | ----------^^^^^^^---------- help: try: `while current.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:92:16 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(_) = right { [INFO] [stdout] | -------^^^^^^^-------- help: try: `if right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/m_148_sort_list.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | let remain = (&mut right).as_mut().unwrap().next.take(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `right` [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: length comparison to zero [INFO] [stdout] --> src/m_148_sort_list.rs:112:15 [INFO] [stdout] | [INFO] [stdout] 112 | while v.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | while let Some(_) = current.next { [INFO] [stdout] | ----------^^^^^^^--------------- help: try: `while current.next.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] 99 + fn search_vec(v: &[i32], mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/e_83_remove_duplicates_from_sorted_list.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | let mut next = current.next.as_mut().unwrap(); [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: unused variable: `n` [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:90:66 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [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/m_48_rotate_image.rs:102:22 [INFO] [stdout] | [INFO] [stdout] 102 | let (mut r_n, mut c_n) = rotate_n(rank, level, r, c, n); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/m_48_rotate_image.rs:102:31 [INFO] [stdout] | [INFO] [stdout] 102 | let (mut r_n, mut c_n) = rotate_n(rank, level, r, c, n); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | let mut start = 0; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_cheat` is never used [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:4 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id` is never used [INFO] [stdout] --> src/m_8_string_to_integer.rs:245:4 [INFO] [stdout] | [INFO] [stdout] 245 | fn id(v: T) -> Parser [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plus_one_version_1` is never used [INFO] [stdout] --> src/m_66_plus_one.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn plus_one_version_1(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_1_two_sum.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | [INFO] [stdout] 75 | pub fn two_sum(nums: Vec, target: i32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_20_valid_parentheses.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn is_valid(s: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn merge_two_lists(l1: Option>, l2: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn get_ending(head: &mut ListNode) -> &mut ListNode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/e_21_merge_two_sorted_lists.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | while let Some(_) = current.next { [INFO] [stdout] | ----------^^^^^^^--------------- help: try: `while current.next.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_53_maximum_subarray.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 85 | [INFO] [stdout] 86 | pub fn max_sub_array(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_83_remove_duplicates_from_sorted_list.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn delete_duplicates(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:90:21 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 90 - pub fn merge(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 90 + pub fn merge(nums1: &mut [i32], m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | start += 1; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] = note: `#[warn(clippy::mut_range_bound)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | left_len += 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 111 + fn merge_cheat(nums1: &mut [i32], m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_88_merge_sorted_array.rs:111:53 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 111 - fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut Vec, n: i32) { [INFO] [stdout] 111 + fn merge_cheat(nums1: &mut Vec, m: i32, nums2: &mut [i32], n: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_94_binary_tree_inorder_traversal.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 82 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 83 | [INFO] [stdout] 84 | pub fn inorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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/e_94_binary_tree_inorder_traversal.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | / match root { [INFO] [stdout] 87 | | Some(mut current) => { [INFO] [stdout] 88 | | let mut roots: Vec>> = vec![]; [INFO] [stdout] 89 | | 'outer: loop { [INFO] [stdout] ... | [INFO] [stdout] 117 | | _ => () [INFO] [stdout] 118 | | } [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] 86 ~ if let Some(mut current) = root { [INFO] [stdout] 87 + let mut roots: Vec>> = vec![]; [INFO] [stdout] 88 + 'outer: loop { [INFO] [stdout] 89 + if (*current).borrow().left.is_some() { [INFO] [stdout] 90 + roots.push(Rc::clone(¤t)); [INFO] [stdout] 91 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 92 + current = left; [INFO] [stdout] 93 + } else { [INFO] [stdout] 94 + v.push((*current).borrow().val); [INFO] [stdout] 95 + if (*current).borrow().right.is_some() { [INFO] [stdout] 96 + let right = Rc::clone((*current).borrow().right.as_ref().unwrap()); [INFO] [stdout] 97 + current = right; [INFO] [stdout] 98 + } else { [INFO] [stdout] 99 + 'inner: loop { [INFO] [stdout] 100 + if let Some(root) = roots.pop() { [INFO] [stdout] 101 + v.push((*root).borrow().val); [INFO] [stdout] 102 + if (*root).borrow().right.is_some() { [INFO] [stdout] 103 + current = Rc::clone((*root).borrow().right.as_ref().unwrap()); [INFO] [stdout] 104 + continue 'outer; [INFO] [stdout] 105 + } else { [INFO] [stdout] 106 + continue 'inner; [INFO] [stdout] 107 + } [INFO] [stdout] 108 + } else { [INFO] [stdout] 109 + break 'outer; [INFO] [stdout] 110 + } [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] 113 + } [INFO] [stdout] 114 + } [INFO] [stdout] 115 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_101_symmetric_tree.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 78 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | [INFO] [stdout] 80 | pub fn is_symmetric(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn is_symmetric_rec(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | fn is_symmetric_rec_inner(left: Option>>, right: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_104_maximum_depth_of_binary_tree.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 70 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | [INFO] [stdout] 72 | pub fn max_depth(root: Option>>) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn max_depth_rec(root: Option>>, acc: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_112_path_sum.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 123 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 124 | [INFO] [stdout] 125 | pub fn has_path_sum(root: Option>>, target_sum: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_118_pascals_triangle.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn generate(num_rows: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_119_pascals_triangle_ii.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_row(row_index: i32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_119_pascals_triangle_ii.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return vec![1]; [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: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return vec![1]; [INFO] [stdout] 55 + vec![1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_121_best_time_to_buy_and_sell_stock.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn max_profit(prices: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_136_single_number.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 51 | [INFO] [stdout] 52 | pub fn single_number(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/e_136_single_number.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | if let None = m.remove(i) { [INFO] [stdout] | -------^^^^-------------- help: try: `if m.remove(i).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_144_binary_tree_preorder_traversal.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 72 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | [INFO] [stdout] 74 | pub fn preorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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/e_144_binary_tree_preorder_traversal.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / match root { [INFO] [stdout] 77 | | Some(mut current) => { [INFO] [stdout] 78 | | let mut rights: Vec>> = vec![]; [INFO] [stdout] 79 | | loop { [INFO] [stdout] ... | [INFO] [stdout] 99 | | _ => () [INFO] [stdout] 100 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 76 ~ if let Some(mut current) = root { [INFO] [stdout] 77 + let mut rights: Vec>> = vec![]; [INFO] [stdout] 78 + loop { [INFO] [stdout] 79 + v.push((*current).borrow().val); [INFO] [stdout] 80 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 81 + if (*current).borrow().left.is_some() { [INFO] [stdout] 82 + if let Some(r) = right { [INFO] [stdout] 83 + rights.push(r); [INFO] [stdout] 84 + } [INFO] [stdout] 85 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 86 + current = left; [INFO] [stdout] 87 + } else if let Some(r) = right { [INFO] [stdout] 88 + current = r; [INFO] [stdout] 89 + } else { [INFO] [stdout] 90 + if let Some(r) = rights.pop() { [INFO] [stdout] 91 + current = r; [INFO] [stdout] 92 + } else { [INFO] [stdout] 93 + break; [INFO] [stdout] 94 + } [INFO] [stdout] 95 + } [INFO] [stdout] 96 + } [INFO] [stdout] 97 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_145_binary_tree_postorder_traversal.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 82 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 83 | [INFO] [stdout] 84 | enum Pos { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn postorder_traversal(root: Option>>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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/e_145_binary_tree_postorder_traversal.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / match root { [INFO] [stdout] 92 | | Some(mut current) => { [INFO] [stdout] 93 | | let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 94 | | 'outer: loop { [INFO] [stdout] ... | [INFO] [stdout] 127 | | _ => () [INFO] [stdout] 128 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ if let Some(mut current) = root { [INFO] [stdout] 92 + let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 93 + 'outer: loop { [INFO] [stdout] 94 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 95 + if (*current).borrow().left.is_some() { [INFO] [stdout] 96 + right_and_roots.push((Pos::Root, Rc::clone(¤t))); [INFO] [stdout] 97 + if let Some(ref r) = right { [INFO] [stdout] 98 + right_and_roots.push((Pos::Right, Rc::clone(r))); [INFO] [stdout] 99 + } [INFO] [stdout] 100 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 101 + current = left; [INFO] [stdout] 102 + } else if let Some(ref r) = right { [INFO] [stdout] 103 + right_and_roots.push((Pos::Root, Rc::clone(¤t))); [INFO] [stdout] 104 + current = Rc::clone(r); [INFO] [stdout] 105 + } else { [INFO] [stdout] 106 + v.push((*current).borrow().val); [INFO] [stdout] 107 + 'inner: loop { [INFO] [stdout] 108 + if let Some((pos, node)) = right_and_roots.pop() { [INFO] [stdout] 109 + match pos { [INFO] [stdout] 110 + Pos::Root => { [INFO] [stdout] 111 + v.push((*node).borrow().val); [INFO] [stdout] 112 + continue 'inner; [INFO] [stdout] 113 + }, [INFO] [stdout] 114 + Pos::Right => { [INFO] [stdout] 115 + current = Rc::clone(&node); [INFO] [stdout] 116 + continue 'outer; [INFO] [stdout] 117 + } [INFO] [stdout] 118 + } [INFO] [stdout] 119 + } else { [INFO] [stdout] 120 + break 'outer; [INFO] [stdout] 121 + } [INFO] [stdout] 122 + } [INFO] [stdout] 123 + } [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_169_majority_element.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn majority_element(nums: Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_203_remove_linked_list_elements.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn remove_elements(head: Option>, val: i32) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/e_203_remove_linked_list_elements.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | if let Some(_) = rest { [INFO] [stdout] | -------^^^^^^^------- help: try: `if rest.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_206_reverse_linked_list.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn reverse_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_217_contains_duplicate.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | [INFO] [stdout] 47 | pub fn contains_duplicate(nums: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/e_217_contains_duplicate.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | assert_eq!(contains_duplicate(vec![1, 2, 3, 4]), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 35 - assert_eq!(contains_duplicate(vec![1, 2, 3, 4]), false); [INFO] [stdout] 35 + assert!(!contains_duplicate(vec![1, 2, 3, 4])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_217_contains_duplicate.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | return false; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return false; [INFO] [stdout] 54 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_226_invert_binary_tree.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 91 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 92 | [INFO] [stdout] 93 | pub fn invert_tree(root: Option>>) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_232_implement_queue_using_stacks.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | struct MyQueue { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | impl MyQueue { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_235_lowest_common_ancestor_of_a_binary_search_tree.rs:49:1 [INFO] [stdout] | [INFO] [stdout] 49 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 80 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 81 | [INFO] [stdout] 82 | pub fn lowest_common_ancestor(root: Option>>, p: Option>>, q: Option>>) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_242_valid_anagram.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn is_anagram(s: String, t: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_242_valid_anagram.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | let mut s = s.chars().into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_242_valid_anagram.rs:46:21 [INFO] [stdout] | [INFO] [stdout] 46 | let mut t = t.chars().into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `t.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_350_intersection_of_two_arrays.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 64 | use std::collections::hash_map::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | [INFO] [stdout] 66 | pub fn intersect(nums1: Vec, nums2: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [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/e_350_intersection_of_two_arrays.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | / match map.entry(i) { [INFO] [stdout] 78 | | Entry::Occupied(c) => { [INFO] [stdout] 79 | | let c = c.into_mut(); [INFO] [stdout] 80 | | if *c > 0 { [INFO] [stdout] ... | [INFO] [stdout] 85 | | _ => () [INFO] [stdout] 86 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Entry::Occupied(c) = map.entry(i) { [INFO] [stdout] 78 + let c = c.into_mut(); [INFO] [stdout] 79 + if *c > 0 { [INFO] [stdout] 80 + out.push(i); [INFO] [stdout] 81 + *c -= 1; [INFO] [stdout] 82 + } [INFO] [stdout] 83 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_383_ransom_note.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 50 | use std::collections::hash_map::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 51 | [INFO] [stdout] 52 | pub fn can_construct(ransom_note: String, magazine: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn count_intersect(nums1: String, nums2: String) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_383_ransom_note.rs:61:41 [INFO] [stdout] | [INFO] [stdout] 61 | let mut map: HashMap = nums1.chars().into_iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `nums1.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [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/e_383_ransom_note.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | / match map.entry(i) { [INFO] [stdout] 72 | | Entry::Occupied(c) => { [INFO] [stdout] 73 | | let c = c.into_mut(); [INFO] [stdout] 74 | | if *c > 0 { [INFO] [stdout] ... | [INFO] [stdout] 79 | | _ => () [INFO] [stdout] 80 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 71 ~ if let Entry::Occupied(c) = map.entry(i) { [INFO] [stdout] 72 + let c = c.into_mut(); [INFO] [stdout] 73 + if *c > 0 { [INFO] [stdout] 74 + count += 1; [INFO] [stdout] 75 + *c -= 1; [INFO] [stdout] 76 + } [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_387_first_unique_character_in_a_string.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | [INFO] [stdout] 49 | pub fn first_uniq_char(s: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/e_387_first_unique_character_in_a_string.rs:51:19 [INFO] [stdout] | [INFO] [stdout] 51 | for (i, c) in s.chars().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `s.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_566_reshape_the_matrix.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn matrix_reshape(mat: Vec>, r: i32, c: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_653_two_sum_iv_input_is_a_bst.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 81 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 82 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 83 | [INFO] [stdout] 84 | pub fn find_target(root: Option>>, k: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_700_search_in_a_binary_search_tree.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 72 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | use core::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | [INFO] [stdout] 75 | pub fn search_bst(root: Option>>, val: i32) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/e_706_design_hashmap.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | struct Entry { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | impl Entry { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | struct MyHashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | impl MyHashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to usize [INFO] [stdout] --> src/e_706_design_hashmap.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | key.abs() as usize % capacity [INFO] [stdout] | ^^^^^^^^^ help: replace with: `key.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_706_design_hashmap.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | return true; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - return true; [INFO] [stdout] 174 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/e_706_design_hashmap.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | fn put_entry(buckets: &mut Vec>>, key: i32, value: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 156 - fn put_entry(buckets: &mut Vec>>, key: i32, value: i32) -> bool { [INFO] [stdout] 156 + fn put_entry(buckets: &mut [Option>], key: i32, value: i32) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:161:20 [INFO] [stdout] | [INFO] [stdout] 161 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | (*e).value = value; [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | } else if (*e).next.is_some() { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | let next = (*e).next.as_mut().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:168:21 [INFO] [stdout] | [INFO] [stdout] 168 | (*e).next = Some(Box::new(Entry::new(key, value))); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/e_706_design_hashmap.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return -1; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 - return -1; [INFO] [stdout] 195 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:189:16 [INFO] [stdout] | [INFO] [stdout] 189 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | return (*e).value; [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:192:26 [INFO] [stdout] | [INFO] [stdout] 192 | bucket = (*e).next.as_ref(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:202:16 [INFO] [stdout] | [INFO] [stdout] 202 | if (*e).key == key { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:203:28 [INFO] [stdout] | [INFO] [stdout] 203 | let next = (*e).next.take(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:207:23 [INFO] [stdout] | [INFO] [stdout] 207 | while (*e).next.is_some() { [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:208:32 [INFO] [stdout] | [INFO] [stdout] 208 | let next = (*e).next.as_ref().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:209:24 [INFO] [stdout] | [INFO] [stdout] 209 | if (*next).key == key { [INFO] [stdout] | ^^^^^^^ help: try: `next` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:210:34 [INFO] [stdout] | [INFO] [stdout] 210 | let nn = (*e.next.as_mut().unwrap()).next.take(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `e.next.as_mut().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:212:29 [INFO] [stdout] | [INFO] [stdout] 212 | ... (*e).next.replace(nn); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | ... (*e).next.take(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/e_706_design_hashmap.rs:219:29 [INFO] [stdout] | [INFO] [stdout] 219 | e = (*e).next.as_mut().unwrap(); [INFO] [stdout] | ^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_8_string_to_integer.rs:133:1 [INFO] [stdout] | [INFO] [stdout] 133 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | / fn id(v: T) -> Parser [INFO] [stdout] 246 | | where [INFO] [stdout] 247 | | T: Copy + 'static [INFO] [stdout] | |_________________________^ [INFO] [stdout] ... [INFO] [stdout] 254 | / fn map(f: impl Fn(T1) -> T2 + 'static, p: Parser) -> Parser [INFO] [stdout] 255 | | where [INFO] [stdout] 256 | | T1: 'static, [INFO] [stdout] 257 | | T2: 'static, [INFO] [stdout] | |____________________^ [INFO] [stdout] ... [INFO] [stdout] 267 | / fn sequence(ps: Vec>) -> ParserOnce> [INFO] [stdout] 268 | | where [INFO] [stdout] 269 | | T: 'static [INFO] [stdout] | |__________________^ [INFO] [stdout] ... [INFO] [stdout] 288 | type ErrMsg = String; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 289 | type ParseResult = Result<(T, String), (ErrMsg, String)>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 290 | type Parser = Box ParseResult>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 291 | type ParserOnce = Box ParseResult>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 292 | [INFO] [stdout] 293 | fn p_char(c: char) -> Parser { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | / fn and_then(p1: ParserOnce, p2: ParserOnce) -> ParserOnce<(T1, T2)> [INFO] [stdout] 305 | | where [INFO] [stdout] 306 | | T1: 'static, [INFO] [stdout] 307 | | T2: 'static, [INFO] [stdout] | |________________^ [INFO] [stdout] ... [INFO] [stdout] 320 | / fn or_else(p1: Parser, p2: Parser) -> Parser [INFO] [stdout] 321 | | where [INFO] [stdout] 322 | | T: 'static [INFO] [stdout] | |______________^ [INFO] [stdout] ... [INFO] [stdout] 332 | / fn any(ps: Vec>) -> Parser [INFO] [stdout] 333 | | where [INFO] [stdout] 334 | | T: 'static [INFO] [stdout] | |______________^ [INFO] [stdout] ... [INFO] [stdout] 344 | fn any_of_chars(chars: impl Iterator) -> Parser { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 348 | / fn maybe(p: Parser) -> Parser> [INFO] [stdout] 349 | | where [INFO] [stdout] 350 | | T: 'static [INFO] [stdout] | |______________^ [INFO] [stdout] ... [INFO] [stdout] 360 | / fn many(p: Parser) -> ParserOnce> [INFO] [stdout] 361 | | where [INFO] [stdout] 362 | | T: 'static [INFO] [stdout] | |______________^ [INFO] [stdout] ... [INFO] [stdout] 376 | / fn once(p: Parser) -> ParserOnce [INFO] [stdout] 377 | | where [INFO] [stdout] 378 | | T: 'static [INFO] [stdout] | |______________^ [INFO] [stdout] ... [INFO] [stdout] 384 | pub fn my_atoi(s: String) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/m_8_string_to_integer.rs:272:24 [INFO] [stdout] | [INFO] [stdout] 272 | ps.into_iter().fold(Ok((vec![], s)), |acc, p| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 273 | | match acc { [INFO] [stdout] 274 | | Ok((mut v, remain)) => match p(remain) { [INFO] [stdout] 275 | | Ok((t, remain)) => { [INFO] [stdout] ... | [INFO] [stdout] 283 | | }) [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((vec![], s), |acc, p| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/m_8_string_to_integer.rs:380:14 [INFO] [stdout] | [INFO] [stdout] 380 | Box::new(move |s| p(s)) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace the closure with the function itself: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/m_8_string_to_integer.rs:392:13 [INFO] [stdout] | [INFO] [stdout] 392 | / if numbers.len() > 0 { [INFO] [stdout] 393 | | let is_negative = match sign { [INFO] [stdout] 394 | | Some('-') => true, [INFO] [stdout] 395 | | _ => false [INFO] [stdout] ... | [INFO] [stdout] 406 | | 0 [INFO] [stdout] 407 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 391 ~ Ok(((_, (sign, mut numbers)), _)) [INFO] [stdout] 392 ~ if numbers.len() > 0 => { [INFO] [stdout] 393 | let is_negative = match sign { [INFO] [stdout] ... [INFO] [stdout] 404 | } [INFO] [stdout] 405 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/m_8_string_to_integer.rs:392:16 [INFO] [stdout] | [INFO] [stdout] 392 | if numbers.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!numbers.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/m_8_string_to_integer.rs:393:35 [INFO] [stdout] | [INFO] [stdout] 393 | let is_negative = match sign { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 394 | | Some('-') => true, [INFO] [stdout] 395 | | _ => false [INFO] [stdout] 396 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 393 - let is_negative = match sign { [INFO] [stdout] 394 - Some('-') => true, [INFO] [stdout] 395 - _ => false [INFO] [stdout] 396 - }; [INFO] [stdout] 393 + let is_negative = matches!(sign, Some('-')); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_15_three_sum.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 63 | [INFO] [stdout] 64 | pub fn three_sum(nums: Vec) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_24_swap_nodes_in_pairs.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn swap_pairs(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_36_valid_sudoku.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 103 | [INFO] [stdout] 104 | pub fn is_valid_sudoku(board: Vec>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `board` [INFO] [stdout] --> src/m_36_valid_sudoku.rs:113:18 [INFO] [stdout] | [INFO] [stdout] 113 | for c in 0 .. 9 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 113 - for c in 0 .. 9 { [INFO] [stdout] 113 + for in board.iter().take(9) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `board` [INFO] [stdout] --> src/m_36_valid_sudoku.rs:116:22 [INFO] [stdout] | [INFO] [stdout] 116 | for r in 0 .. 9 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 116 - for r in 0 .. 9 { [INFO] [stdout] 116 + for in board.iter().take(9) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_48_rotate_image.rs:49:1 [INFO] [stdout] | [INFO] [stdout] 49 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn rotate_n(rank: usize, level: usize, r: usize, c: usize, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/m_48_rotate_image.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 93 - pub fn rotate(matrix: &mut Vec>) { [INFO] [stdout] 93 + pub fn rotate(matrix: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `matrix[r_n][c_n]` and `current` manually [INFO] [stdout] --> src/m_48_rotate_image.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | / let tmp = matrix[r_n][c_n]; [INFO] [stdout] 104 | | matrix[r_n][c_n] = current; [INFO] [stdout] 105 | | current = tmp; [INFO] [stdout] | |______________________________^ help: try: `std::mem::swap(&mut matrix[r_n][c_n], &mut current);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_56_merge_intervals.rs:33:1 [INFO] [stdout] | [INFO] [stdout] 33 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn merge(intervals: Vec>) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_59_spiral_matrix_ii.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn generate_matrix(n: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn rotate_n(lower_bound: usize, upper_bound: usize, r: usize, c: usize, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_61_rotate_list.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn len(head: &ListNode) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn split_at(head: &mut ListNode, index: usize) -> ListNode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn append(head: &mut ListNode, node: ListNode) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn rotate_right(head: Option>, k: i32) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/m_61_rotate_list.rs:125:27 [INFO] [stdout] | [INFO] [stdout] 125 | let len = len(&*old_head); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&old_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/m_61_rotate_list.rs:129:45 [INFO] [stdout] | [INFO] [stdout] 129 | let mut new_head = split_at(&mut *old_head, i - 1); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&mut old_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_66_plus_one.rs:62:1 [INFO] [stdout] | [INFO] [stdout] 62 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn plus_one(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn plus_one_version_1(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn plus_one_optimized(digits: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | use core::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | [INFO] [stdout] 66 | pub fn search_matrix(matrix: Vec>, target: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return false; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return false; [INFO] [stdout] 93 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `v` [INFO] [stdout] --> src/m_74_search_a_2d_matrix.rs:78:42 [INFO] [stdout] | [INFO] [stdout] 78 | ... for j in 1 .. v.len() - 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 78 - for j in 1 .. v.len() - 1 { [INFO] [stdout] 78 + for in v.iter().take(v.len() - 1).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_75_sort_colors.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn sort_colors(nums: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | fn quick_sort(nums: &mut Vec, lo: usize, hi: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 73 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | [INFO] [stdout] 75 | pub fn is_valid_bst(root: Option>>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn is_valid_bst_inner(root: Option>>, lower: Option, upper: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:85:20 [INFO] [stdout] | [INFO] [stdout] 85 | if !(left.borrow().val < val) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(left.borrow().val >= val)` [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/m_98_validate_binary_search_tree.rs:89:24 [INFO] [stdout] | [INFO] [stdout] 89 | if !(left.borrow().val > l) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(left.borrow().val <= l)` [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: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:95:20 [INFO] [stdout] | [INFO] [stdout] 95 | if !(right.borrow().val > val) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(right.borrow().val <= val)` [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: this boolean expression can be simplified [INFO] [stdout] --> src/m_98_validate_binary_search_tree.rs:99:24 [INFO] [stdout] | [INFO] [stdout] 99 | if !(right.borrow().val < u) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(right.borrow().val >= u)` [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: items after a test module [INFO] [stdout] --> src/m_102_binary_tree_level_order_traversal.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 60 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 61 | [INFO] [stdout] 62 | enum Pos { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn level_order(root: Option>>) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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/m_102_binary_tree_level_order_traversal.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | / match root { [INFO] [stdout] 70 | | Some(mut current) => { [INFO] [stdout] 71 | | let mut level = 0usize; [INFO] [stdout] 72 | | let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] ... | [INFO] [stdout] 115 | | _ => () [INFO] [stdout] 116 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 69 ~ if let Some(mut current) = root { [INFO] [stdout] 70 + let mut level = 0usize; [INFO] [stdout] 71 + let mut right_and_roots: Vec<(Pos, Rc>)> = vec![]; [INFO] [stdout] 72 + 'outer: loop { [INFO] [stdout] 73 + if v.len() < level + 1 { [INFO] [stdout] 74 + v.push(vec![]); [INFO] [stdout] 75 + } [INFO] [stdout] 76 + let right = (*current).borrow().right.as_ref().map(Rc::clone); [INFO] [stdout] 77 + if (*current).borrow().left.is_some() { [INFO] [stdout] 78 + right_and_roots.push((Pos::Root(level), Rc::clone(¤t))); [INFO] [stdout] 79 + level += 1; [INFO] [stdout] 80 + if let Some(ref r) = right { [INFO] [stdout] 81 + right_and_roots.push((Pos::Right(level), Rc::clone(r))); [INFO] [stdout] 82 + } [INFO] [stdout] 83 + let left = Rc::clone((*current).borrow().left.as_ref().unwrap()); [INFO] [stdout] 84 + current = left; [INFO] [stdout] 85 + } else if let Some(ref r) = right { [INFO] [stdout] 86 + right_and_roots.push((Pos::Root(level), Rc::clone(¤t))); [INFO] [stdout] 87 + level += 1; [INFO] [stdout] 88 + current = Rc::clone(r); [INFO] [stdout] 89 + } else { [INFO] [stdout] 90 + v[level].push((*current).borrow().val); [INFO] [stdout] 91 + 'inner: loop { [INFO] [stdout] 92 + if let Some((pos, node)) = right_and_roots.pop() { [INFO] [stdout] 93 + match pos { [INFO] [stdout] 94 + Pos::Root(l) => { [INFO] [stdout] 95 + if v.len() < l + 1 { [INFO] [stdout] 96 + v.push(vec![]); [INFO] [stdout] 97 + } [INFO] [stdout] 98 + v[l].push((*node).borrow().val); [INFO] [stdout] 99 + continue 'inner; [INFO] [stdout] 100 + }, [INFO] [stdout] 101 + Pos::Right(l) => { [INFO] [stdout] 102 + level = l; [INFO] [stdout] 103 + current = Rc::clone(&node); [INFO] [stdout] 104 + continue 'outer; [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] 107 + } else { [INFO] [stdout] 108 + break 'outer; [INFO] [stdout] 109 + } [INFO] [stdout] 110 + } [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] 113 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_147_insertion_sort_list.rs:46:1 [INFO] [stdout] | [INFO] [stdout] 46 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn insertion_sort_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | fn insert_sorted(head: Option>, mut node: ListNode) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_148_sort_list.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn sort_list(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn merge_sort(head: Option>) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn fold_sorted(mut v: Vec>>) -> Vec>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | / fn merge_sorted(left: Option>, [INFO] [stdout] 126 | | right: Option>) -> Option> { [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn get_ending(head: &mut ListNode) -> &mut ListNode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:90:15 [INFO] [stdout] | [INFO] [stdout] 90 | while let Some(_) = current { [INFO] [stdout] | ----------^^^^^^^---------- help: try: `while current.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:92:16 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(_) = right { [INFO] [stdout] | -------^^^^^^^-------- help: try: `if right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/m_148_sort_list.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | let remain = (&mut right).as_mut().unwrap().next.take(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `right` [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: length comparison to zero [INFO] [stdout] --> src/m_148_sort_list.rs:112:15 [INFO] [stdout] | [INFO] [stdout] 112 | while v.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/m_148_sort_list.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | while let Some(_) = current.next { [INFO] [stdout] | ----------^^^^^^^--------------- help: try: `while current.next.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | use core::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 76 | [INFO] [stdout] 77 | pub fn search_matrix(matrix: Vec>, target: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/m_240_search_a_2d_matrix_ii.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - fn search_vec(v: &Vec, mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] 99 + fn search_vec(v: &[i32], mut start: usize, mut end: usize, target: i32) -> (usize, Ordering) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/m_701_insert_into_a_binary_search_tree.rs:46:1 [INFO] [stdout] | [INFO] [stdout] 46 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 113 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 114 | [INFO] [stdout] 115 | pub fn insert_into_bst(root: Option>>, val: i32) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.58s [INFO] running `Command { std: "docker" "inspect" "ba92eeb1e59e9ee9d933941b554190d0e2452c05c7435428dea5184c687bcc17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba92eeb1e59e9ee9d933941b554190d0e2452c05c7435428dea5184c687bcc17", kill_on_drop: false }` [INFO] [stdout] ba92eeb1e59e9ee9d933941b554190d0e2452c05c7435428dea5184c687bcc17