[INFO] updating cached repository MaxfieldWalker/blindsearch [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/MaxfieldWalker/blindsearch [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/MaxfieldWalker/blindsearch" "work/ex/clippy-test-run/sources/stable/gh/MaxfieldWalker/blindsearch"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/MaxfieldWalker/blindsearch'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/MaxfieldWalker/blindsearch" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/MaxfieldWalker/blindsearch"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/MaxfieldWalker/blindsearch'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 87a9d48254268a753735c842c5ac569d1eb2a72c [INFO] sha for GitHub repo MaxfieldWalker/blindsearch: 87a9d48254268a753735c842c5ac569d1eb2a72c [INFO] validating manifest of MaxfieldWalker/blindsearch on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of MaxfieldWalker/blindsearch on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing MaxfieldWalker/blindsearch [INFO] finished frobbing MaxfieldWalker/blindsearch [INFO] frobbed toml for MaxfieldWalker/blindsearch written to work/ex/clippy-test-run/sources/stable/gh/MaxfieldWalker/blindsearch/Cargo.toml [INFO] started frobbing MaxfieldWalker/blindsearch [INFO] finished frobbing MaxfieldWalker/blindsearch [INFO] frobbed toml for MaxfieldWalker/blindsearch written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/MaxfieldWalker/blindsearch/Cargo.toml [INFO] crate MaxfieldWalker/blindsearch has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting MaxfieldWalker/blindsearch against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/MaxfieldWalker/blindsearch:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 87c703f6d8bca24f5ddec8c67e3e723f6e88c0a3ffd3c3f85aa03566a808e741 [INFO] running `"docker" "start" "-a" "87c703f6d8bca24f5ddec8c67e3e723f6e88c0a3ffd3c3f85aa03566a808e741"` [INFO] [stderr] Checking blindsearch v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dfs.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bfs.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iddfs.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dfs.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bfs.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iddfs.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | statuses: statuses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `statuses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | return Some((Node(self.0.clone()), current_depth)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((Node(self.0.clone()), current_depth))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/iddfs.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 49 | | if l1.len() == 0 { [INFO] [stderr] 50 | | // Step 2, 3: [INFO] [stderr] 51 | | // L1が空ならば cutoff を1増やし [INFO] [stderr] ... | [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 48 | } else if l1.len() == 0 { [INFO] [stderr] 49 | // Step 2, 3: [INFO] [stderr] 50 | // L1が空ならば cutoff を1増やし [INFO] [stderr] 51 | // 出発節点をL1に入れる [INFO] [stderr] 52 | let this_status = BlindSearchStatus::new(str_status, SearchResult::NotFound); [INFO] [stderr] 53 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | return Some((Node(self.0.clone()), current_depth)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((Node(self.0.clone()), current_depth))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/iddfs.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 49 | | if l1.len() == 0 { [INFO] [stderr] 50 | | // Step 2, 3: [INFO] [stderr] 51 | | // L1が空ならば cutoff を1増やし [INFO] [stderr] ... | [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 48 | } else if l1.len() == 0 { [INFO] [stderr] 49 | // Step 2, 3: [INFO] [stderr] 50 | // L1が空ならば cutoff を1増やし [INFO] [stderr] 51 | // 出発節点をL1に入れる [INFO] [stderr] 52 | let this_status = BlindSearchStatus::new(str_status, SearchResult::NotFound); [INFO] [stderr] 53 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: function is never used: `blind_search_dfs` [INFO] [stderr] --> src/dfs.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn blind_search_dfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dig` [INFO] [stderr] --> src/dfs.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / fn dig(l1: &mut Vec, [INFO] [stderr] 23 | | l2: &mut Vec, [INFO] [stderr] 24 | | loop_count: u32, [INFO] [stderr] 25 | | goals: &Vec) [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `NodeRef` [INFO] [stderr] --> src/tree.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | type NodeRef = Rc>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Node` [INFO] [stderr] --> src/tree.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct Node(NodeRef); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/tree.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(value: String) -> Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_child` [INFO] [stderr] --> src/tree.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn add_child(&self, child_node: &Node) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `stringify` [INFO] [stderr] --> src/tree.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn stringify(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inner_stringify` [INFO] [stderr] --> src/tree.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | fn inner_stringify(&self, depth: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_node` [INFO] [stderr] --> src/tree.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn find_node(&self, value: &str) -> Option<(Node, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inner_find_node` [INFO] [stderr] --> src/tree.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | fn inner_find_node(&self, value: &str, current_depth: u32) -> Option<(Node, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `children` [INFO] [stderr] --> src/tree.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn children(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `name` [INFO] [stderr] --> src/tree.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn name(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `has_child_node` [INFO] [stderr] --> src/tree.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn has_child_node(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ref_clone` [INFO] [stderr] --> src/tree.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn ref_clone(&self) -> Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BlindSearchStatus` [INFO] [stderr] --> src/blindsearch.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct BlindSearchStatus { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/blindsearch.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(status: String, result: SearchResult) -> BlindSearchStatus { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Found` [INFO] [stderr] --> src/blindsearch.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Found, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NotFound` [INFO] [stderr] --> src/blindsearch.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | NotFound, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BlindSearchResult` [INFO] [stderr] --> src/blindsearch.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub struct BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `capture` [INFO] [stderr] --> src/core.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | fn capture<'a>(s: &'a String) -> regex::Captures<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_line` [INFO] [stderr] --> src/core.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | fn parse_line<'a>(line: &'a String) -> (String, Vec<(bool, String)>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `build_tree` [INFO] [stderr] --> src/core.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | fn build_tree(line: String, root_node: &Node, goals: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `build_tree_from_input` [INFO] [stderr] --> src/core.rs:72:1 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn build_tree_from_input(input_path: &str) -> Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `blind_search_bfs` [INFO] [stderr] --> src/bfs.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn blind_search_bfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dig` [INFO] [stderr] --> src/bfs.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | / fn dig(l1: &mut Vec, [INFO] [stderr] 21 | | l2: &mut Vec, [INFO] [stderr] 22 | | loop_count: u32, [INFO] [stderr] 23 | | goals: &Vec) [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `blind_search_iddfs` [INFO] [stderr] --> src/iddfs.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn blind_search_iddfs(root_node: &Node, [INFO] [stderr] 7 | | goals: &Vec, [INFO] [stderr] 8 | | cutoff_threshold: u32) [INFO] [stderr] 9 | | -> BlindSearchResult { [INFO] [stderr] ... | [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dig` [INFO] [stderr] --> src/iddfs.rs:36:1 [INFO] [stderr] | [INFO] [stderr] 36 | / fn dig(l1: &mut Vec, [INFO] [stderr] 37 | | l2: &mut Vec, [INFO] [stderr] 38 | | cutoff: u32, [INFO] [stderr] 39 | | cutoff_threshold: u32, [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dfs.rs:7:50 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn blind_search_dfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dfs.rs:25:15 [INFO] [stderr] | [INFO] [stderr] 25 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dfs.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tree.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match child_node.inner_find_node(value, current_depth + 1) { [INFO] [stderr] 74 | | Some(n) => { [INFO] [stderr] 75 | | return Some(n); [INFO] [stderr] 76 | | } [INFO] [stderr] ... | [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 73 | if let Some(n) = child_node.inner_find_node(value, current_depth + 1) { [INFO] [stderr] 74 | return Some(n); [INFO] [stderr] 75 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tree.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.0.borrow().children.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.0.borrow().children.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | fn capture<'a>(s: &'a String) -> regex::Captures<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/core.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | / fn capture<'a>(s: &'a String) -> regex::Captures<'a> { [INFO] [stderr] 12 | | let pattern = Regex::new(r"([a-zA-Z])\s+->\s+((\*?[a-zA-Z])+)").unwrap(); [INFO] [stderr] 13 | | pattern.captures(s).unwrap() [INFO] [stderr] 14 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core.rs:17:25 [INFO] [stderr] | [INFO] [stderr] 17 | fn parse_line<'a>(line: &'a String) -> (String, Vec<(bool, String)>) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/core.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / fn parse_line<'a>(line: &'a String) -> (String, Vec<(bool, String)>) { [INFO] [stderr] 18 | | let captures = capture(line); [INFO] [stderr] 19 | | let first = captures.get(1).unwrap().as_str(); [INFO] [stderr] 20 | | let mut children: Vec<(bool, String)> = vec![]; [INFO] [stderr] ... | [INFO] [stderr] 45 | | (first.to_string(), children) [INFO] [stderr] 46 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | let sub = &rest[index..index + 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `index..=index` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:37:31 [INFO] [stderr] | [INFO] [stderr] 37 | node_name = &rest[index..index + 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `index..=index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bfs.rs:6:50 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn blind_search_bfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bfs.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bfs.rs:29:8 [INFO] [stderr] | [INFO] [stderr] 29 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/iddfs.rs:7:34 [INFO] [stderr] | [INFO] [stderr] 7 | goals: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/iddfs.rs:42:15 [INFO] [stderr] | [INFO] [stderr] 42 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/iddfs.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: method is never used: `stringify` [INFO] [stderr] --> src/tree.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn stringify(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inner_stringify` [INFO] [stderr] --> src/tree.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | fn inner_stringify(&self, depth: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dfs.rs:7:50 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn blind_search_dfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dfs.rs:25:15 [INFO] [stderr] | [INFO] [stderr] 25 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dfs.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tree.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match child_node.inner_find_node(value, current_depth + 1) { [INFO] [stderr] 74 | | Some(n) => { [INFO] [stderr] 75 | | return Some(n); [INFO] [stderr] 76 | | } [INFO] [stderr] ... | [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 73 | if let Some(n) = child_node.inner_find_node(value, current_depth + 1) { [INFO] [stderr] 74 | return Some(n); [INFO] [stderr] 75 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tree.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.0.borrow().children.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.0.borrow().children.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | fn capture<'a>(s: &'a String) -> regex::Captures<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/core.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | / fn capture<'a>(s: &'a String) -> regex::Captures<'a> { [INFO] [stderr] 12 | | let pattern = Regex::new(r"([a-zA-Z])\s+->\s+((\*?[a-zA-Z])+)").unwrap(); [INFO] [stderr] 13 | | pattern.captures(s).unwrap() [INFO] [stderr] 14 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core.rs:17:25 [INFO] [stderr] | [INFO] [stderr] 17 | fn parse_line<'a>(line: &'a String) -> (String, Vec<(bool, String)>) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/core.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / fn parse_line<'a>(line: &'a String) -> (String, Vec<(bool, String)>) { [INFO] [stderr] 18 | | let captures = capture(line); [INFO] [stderr] 19 | | let first = captures.get(1).unwrap().as_str(); [INFO] [stderr] 20 | | let mut children: Vec<(bool, String)> = vec![]; [INFO] [stderr] ... | [INFO] [stderr] 45 | | (first.to_string(), children) [INFO] [stderr] 46 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | let sub = &rest[index..index + 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `index..=index` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:37:31 [INFO] [stderr] | [INFO] [stderr] 37 | node_name = &rest[index..index + 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `index..=index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bfs.rs:6:50 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn blind_search_bfs(root_node: &Node, goals: &Vec) -> BlindSearchResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bfs.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bfs.rs:29:8 [INFO] [stderr] | [INFO] [stderr] 29 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/iddfs.rs:7:34 [INFO] [stderr] | [INFO] [stderr] 7 | goals: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/iddfs.rs:42:15 [INFO] [stderr] | [INFO] [stderr] 42 | goals: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/iddfs.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | if l1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.35s [INFO] running `"docker" "inspect" "87c703f6d8bca24f5ddec8c67e3e723f6e88c0a3ffd3c3f85aa03566a808e741"` [INFO] running `"docker" "rm" "-f" "87c703f6d8bca24f5ddec8c67e3e723f6e88c0a3ffd3c3f85aa03566a808e741"` [INFO] [stdout] 87c703f6d8bca24f5ddec8c67e3e723f6e88c0a3ffd3c3f85aa03566a808e741