[INFO] updating cached repository bastikr/wordacademy-solver [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bastikr/wordacademy-solver [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bastikr/wordacademy-solver" "work/ex/clippy-test-run/sources/stable/gh/bastikr/wordacademy-solver"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/bastikr/wordacademy-solver'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bastikr/wordacademy-solver" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bastikr/wordacademy-solver"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bastikr/wordacademy-solver'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a1f58d948ca4a6bf2ca14f6b00847a632d98e77f [INFO] sha for GitHub repo bastikr/wordacademy-solver: a1f58d948ca4a6bf2ca14f6b00847a632d98e77f [INFO] validating manifest of bastikr/wordacademy-solver 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 bastikr/wordacademy-solver 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 bastikr/wordacademy-solver [INFO] finished frobbing bastikr/wordacademy-solver [INFO] frobbed toml for bastikr/wordacademy-solver written to work/ex/clippy-test-run/sources/stable/gh/bastikr/wordacademy-solver/Cargo.toml [INFO] started frobbing bastikr/wordacademy-solver [INFO] finished frobbing bastikr/wordacademy-solver [INFO] frobbed toml for bastikr/wordacademy-solver written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bastikr/wordacademy-solver/Cargo.toml [INFO] crate bastikr/wordacademy-solver 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 bastikr/wordacademy-solver against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/bastikr/wordacademy-solver:/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] 1716d7d8026e2db60690c64c2b85b0fbfeaf0f32c36c6c62a874d64c6b3c4f71 [INFO] running `"docker" "start" "-a" "1716d7d8026e2db60690c64c2b85b0fbfeaf0f32c36c6c62a874d64c6b3c4f71"` [INFO] [stderr] Checking wordacademy-solver v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/board.rs:93:32 [INFO] [stderr] | [INFO] [stderr] 93 | Neighbours { count: 0, size: size, i0: i, j0: j} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/board.rs:93:32 [INFO] [stderr] | [INFO] [stderr] 93 | Neighbours { count: 0, size: size, i0: i, j0: j} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | return Some((self.i0-1, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0-1))` [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/board.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | return Some((self.i0-1, self.j0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return Some((self.i0-1, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | return Some((self.i0, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | return Some((self.i0+1, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:156:17 [INFO] [stderr] | [INFO] [stderr] 156 | return Some((self.i0+1, self.j0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | return Some((self.i0+1, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0-1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:164:17 [INFO] [stderr] | [INFO] [stderr] 164 | return Some((self.i0, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0, self.j0-1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:167:18 [INFO] [stderr] | [INFO] [stderr] 167 | _ => 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: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/chargraph.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver_positional.rs:569:5 [INFO] [stderr] | [INFO] [stderr] 569 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | return Some((self.i0-1, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0-1))` [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/board.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | return Some((self.i0-1, self.j0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return Some((self.i0-1, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0-1, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | return Some((self.i0, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | return Some((self.i0+1, self.j0+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0+1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:156:17 [INFO] [stderr] | [INFO] [stderr] 156 | return Some((self.i0+1, self.j0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | return Some((self.i0+1, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0+1, self.j0-1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:164:17 [INFO] [stderr] | [INFO] [stderr] 164 | return Some((self.i0, self.j0-1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((self.i0, self.j0-1))` [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: unneeded return statement [INFO] [stderr] --> src/board.rs:167:18 [INFO] [stderr] | [INFO] [stderr] 167 | _ => 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: unused import: `Mask` [INFO] [stderr] --> src/board.rs:245:29 [INFO] [stderr] | [INFO] [stderr] 245 | use board::{Neighbours, Mask}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/chargraph.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver_positional.rs:569:5 [INFO] [stderr] | [INFO] [stderr] 569 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unused variable: `index` [INFO] [stderr] --> src/chargraph.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | Err(index) => { panic!("bla") } [INFO] [stderr] | ^^^^^ help: consider using `_index` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `writeable` [INFO] [stderr] --> src/solver_positional.rs:515:1 [INFO] [stderr] | [INFO] [stderr] 515 | fn writeable(word: &str, board: &Board) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | writeln!(f); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | writeln!(f, "{}", separator); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | write!(f, "|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | write!(f, "{}", self.get(i, j)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | write!(f, " "); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | writeln!(f, "|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [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/word.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | / match j_last { [INFO] [stderr] 65 | | Some(value) => { [INFO] [stderr] 66 | | if value+1 {} [INFO] [stderr] 71 | | } [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] 64 | if let Some(value) = j_last { [INFO] [stderr] 65 | if value+1 src/chargraph.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn contains_key(&self, x: &char) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/chargraph.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match self.chars.binary_search(x) { [INFO] [stderr] 61 | | Ok(_) => true, [INFO] [stderr] 62 | | Err(_) => false [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________^ help: try this: `self.chars.binary_search(x).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: item `solver_positional::GroupedSolution` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/solver_positional.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | / impl GroupedSolution { [INFO] [stderr] 35 | | pub fn words(&self) -> Vec { [INFO] [stderr] 36 | | let v: &Vec = self.solutions.iter().next().unwrap(); [INFO] [stderr] 37 | | v.iter().map(|x| x.as_string()).collect() [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 103 [INFO] [stderr] --> src/solver_positional.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | / fn walk(i: usize, j: usize, state: &State) -> Option>> { [INFO] [stderr] 92 | | let currentchar = state.board.get(i, j); [INFO] [stderr] 93 | | if !state.graph.contains_key(¤tchar) [INFO] [stderr] 94 | | || !contains_a_length(state.graph, state.lengths) [INFO] [stderr] ... | [INFO] [stderr] 503 | | Some(solutions) [INFO] [stderr] 504 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/solver_positional.rs:131:23 [INFO] [stderr] | [INFO] [stderr] 131 | ..*state [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping `v0` and `v1` manually [INFO] [stderr] --> src/solver_positional.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | / let tmp = v0; [INFO] [stderr] 564 | | v0 = v1; [INFO] [stderr] 565 | | v1 = tmp; [INFO] [stderr] | |________________^ help: try: `std::mem::swap(&mut v0, &mut v1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = note: or maybe you should use `std::mem::replace`? [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/solver_positional.rs:575:10 [INFO] [stderr] | [INFO] [stderr] 575 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: unused variable: `graph` [INFO] [stderr] --> src/chargraph.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | let graph = CharGraph::from_strings(&words); [INFO] [stderr] | ^^^^^ help: consider using `_graph` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/chargraph.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | Err(index) => { panic!("bla") } [INFO] [stderr] | ^^^^^ help: consider using `_index` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `writeable` [INFO] [stderr] --> src/solver_positional.rs:515:1 [INFO] [stderr] | [INFO] [stderr] 515 | fn writeable(word: &str, board: &Board) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | writeln!(f); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | writeln!(f, "{}", separator); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | write!(f, "|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | write!(f, "{}", self.get(i, j)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | write!(f, " "); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/board.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | writeln!(f, "|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [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/word.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | / match j_last { [INFO] [stderr] 65 | | Some(value) => { [INFO] [stderr] 66 | | if value+1 {} [INFO] [stderr] 71 | | } [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] 64 | if let Some(value) = j_last { [INFO] [stderr] 65 | if value+1 src/chargraph.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn contains_key(&self, x: &char) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/chargraph.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match self.chars.binary_search(x) { [INFO] [stderr] 61 | | Ok(_) => true, [INFO] [stderr] 62 | | Err(_) => false [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________^ help: try this: `self.chars.binary_search(x).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: item `solver_positional::GroupedSolution` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/solver_positional.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | / impl GroupedSolution { [INFO] [stderr] 35 | | pub fn words(&self) -> Vec { [INFO] [stderr] 36 | | let v: &Vec = self.solutions.iter().next().unwrap(); [INFO] [stderr] 37 | | v.iter().map(|x| x.as_string()).collect() [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 103 [INFO] [stderr] --> src/solver_positional.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | / fn walk(i: usize, j: usize, state: &State) -> Option>> { [INFO] [stderr] 92 | | let currentchar = state.board.get(i, j); [INFO] [stderr] 93 | | if !state.graph.contains_key(¤tchar) [INFO] [stderr] 94 | | || !contains_a_length(state.graph, state.lengths) [INFO] [stderr] ... | [INFO] [stderr] 503 | | Some(solutions) [INFO] [stderr] 504 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/solver_positional.rs:131:23 [INFO] [stderr] | [INFO] [stderr] 131 | ..*state [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping `v0` and `v1` manually [INFO] [stderr] --> src/solver_positional.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | / let tmp = v0; [INFO] [stderr] 564 | | v0 = v1; [INFO] [stderr] 565 | | v1 = tmp; [INFO] [stderr] | |________________^ help: try: `std::mem::swap(&mut v0, &mut v1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = note: or maybe you should use `std::mem::replace`? [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/solver_positional.rs:575:10 [INFO] [stderr] | [INFO] [stderr] 575 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.41s [INFO] running `"docker" "inspect" "1716d7d8026e2db60690c64c2b85b0fbfeaf0f32c36c6c62a874d64c6b3c4f71"` [INFO] running `"docker" "rm" "-f" "1716d7d8026e2db60690c64c2b85b0fbfeaf0f32c36c6c62a874d64c6b3c4f71"` [INFO] [stdout] 1716d7d8026e2db60690c64c2b85b0fbfeaf0f32c36c6c62a874d64c6b3c4f71