[INFO] updating cached repository Peternator7/cracker-barrel-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Peternator7/cracker-barrel-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Peternator7/cracker-barrel-rust" "work/ex/clippy-test-run/sources/stable/gh/Peternator7/cracker-barrel-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Peternator7/cracker-barrel-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Peternator7/cracker-barrel-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Peternator7/cracker-barrel-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Peternator7/cracker-barrel-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c745de53d1a7e569c0bf536d5363019b428b2084 [INFO] sha for GitHub repo Peternator7/cracker-barrel-rust: c745de53d1a7e569c0bf536d5363019b428b2084 [INFO] validating manifest of Peternator7/cracker-barrel-rust 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 Peternator7/cracker-barrel-rust 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 Peternator7/cracker-barrel-rust [INFO] finished frobbing Peternator7/cracker-barrel-rust [INFO] frobbed toml for Peternator7/cracker-barrel-rust written to work/ex/clippy-test-run/sources/stable/gh/Peternator7/cracker-barrel-rust/Cargo.toml [INFO] started frobbing Peternator7/cracker-barrel-rust [INFO] finished frobbing Peternator7/cracker-barrel-rust [INFO] frobbed toml for Peternator7/cracker-barrel-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Peternator7/cracker-barrel-rust/Cargo.toml [INFO] crate Peternator7/cracker-barrel-rust 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 Peternator7/cracker-barrel-rust against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Peternator7/cracker-barrel-rust:/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 -Dclippy::into_iter_on_array" "-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] 26b0069511400681dbea0857e20394788f71d6653e765fde20123cccce1bf069 [INFO] running `"docker" "start" "-a" "26b0069511400681dbea0857e20394788f71d6653e765fde20123cccce1bf069"` [INFO] [stderr] Checking triangle_problem v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/graph.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | writeln!(f,"") [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/graph.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | writeln!(f,"") [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return (x as usize) < self.rows.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(x as usize) < self.rows.len()` [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/graph.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return (x as usize) < self.rows.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(x as usize) < self.rows.len()` [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: static variable `c` should have an upper case name such as `C` [INFO] [stderr] --> src/graph.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | static c: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in 1..(size+1) { [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=size` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/graph.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | self.rows.get_unchecked(row as usize).get_unchecked(col as usize).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.rows.get_unchecked(row as usize).get_unchecked(col as usize)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/graph.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | if let Some(_) = unsafe {self.contains_piece_unchecked(new_pos)} { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 88 | | return None; [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________- help: try this: `if unsafe {self.contains_piece_unchecked(new_pos)}.is_some()` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / if let &Some(_) = self.contains_piece(old_pos) { [INFO] [stderr] 91 | | let diff = new_pos - old_pos; [INFO] [stderr] 92 | | match diff { [INFO] [stderr] 93 | | Point(x@2,y@0) | Point(x@-2,y@0) | [INFO] [stderr] ... | [INFO] [stderr] 115 | | None [INFO] [stderr] 116 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 90 | if let Some(_) = *self.contains_piece(old_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/graph.rs:99:28 [INFO] [stderr] | [INFO] [stderr] 99 | if let None = unsafe {self.contains_piece_unchecked(p)} { [INFO] [stderr] | _____________________- ^^^^ [INFO] [stderr] 100 | | return None; [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________________- help: try this: `if unsafe {self.contains_piece_unchecked(p)}.is_none()` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / if let &Some(_) = self.contains_piece(new_pos) { [INFO] [stderr] 128 | | return false; [INFO] [stderr] 129 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 127 | if let Some(_) = *self.contains_piece(new_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if let &Some(_) = self.contains_piece(old_pos) { [INFO] [stderr] 131 | | let diff = Point(x_2 - x_1, y_2 - y_1); [INFO] [stderr] 132 | | match diff { [INFO] [stderr] 133 | | Point(x@2,y@0) | Point(x@-2,y@0) [INFO] [stderr] ... | [INFO] [stderr] 155 | | false [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 130 | if let Some(_) = *self.contains_piece(old_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:139:21 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &None = self.contains_piece(p) { [INFO] [stderr] 140 | | return false; [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 139 | if let None = *self.contains_piece(p) { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.rows.enumerate()` or similar iterators [INFO] [stderr] --> src/graph.rs:200:20 [INFO] [stderr] | [INFO] [stderr] 200 | for row in &self.rows { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | / if let &Some(Piece(id)) = col { [INFO] [stderr] 207 | | try!(write!(f,"[{: >#2}] ",id)); [INFO] [stderr] 208 | | } else { [INFO] [stderr] 209 | | try!(write!(f,"[ ] ")); [INFO] [stderr] 210 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | if let Some(Piece(id)) = *col { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | for j in 0..i+1 { [INFO] [stderr] | ^^^^^^ help: use: `0..=i` [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: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:45:18 [INFO] [stderr] | [INFO] [stderr] 45 | for j in 0..i+1 { [INFO] [stderr] | ^^^^^^ help: use: `0..=i` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | / if let &None = current.contains_piece(Point(i,j)) { [INFO] [stderr] 47 | | continue; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 46 | if let None = *current.contains_piece(Point(i,j)) { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static variable `c` should have an upper case name such as `C` [INFO] [stderr] --> src/graph.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | static c: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in 1..(size+1) { [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=size` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/graph.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | self.rows.get_unchecked(row as usize).get_unchecked(col as usize).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.rows.get_unchecked(row as usize).get_unchecked(col as usize)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/graph.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | if let Some(_) = unsafe {self.contains_piece_unchecked(new_pos)} { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 88 | | return None; [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________- help: try this: `if unsafe {self.contains_piece_unchecked(new_pos)}.is_some()` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / if let &Some(_) = self.contains_piece(old_pos) { [INFO] [stderr] 91 | | let diff = new_pos - old_pos; [INFO] [stderr] 92 | | match diff { [INFO] [stderr] 93 | | Point(x@2,y@0) | Point(x@-2,y@0) | [INFO] [stderr] ... | [INFO] [stderr] 115 | | None [INFO] [stderr] 116 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 90 | if let Some(_) = *self.contains_piece(old_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/graph.rs:99:28 [INFO] [stderr] | [INFO] [stderr] 99 | if let None = unsafe {self.contains_piece_unchecked(p)} { [INFO] [stderr] | _____________________- ^^^^ [INFO] [stderr] 100 | | return None; [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________________- help: try this: `if unsafe {self.contains_piece_unchecked(p)}.is_none()` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / if let &Some(_) = self.contains_piece(new_pos) { [INFO] [stderr] 128 | | return false; [INFO] [stderr] 129 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 127 | if let Some(_) = *self.contains_piece(new_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if let &Some(_) = self.contains_piece(old_pos) { [INFO] [stderr] 131 | | let diff = Point(x_2 - x_1, y_2 - y_1); [INFO] [stderr] 132 | | match diff { [INFO] [stderr] 133 | | Point(x@2,y@0) | Point(x@-2,y@0) [INFO] [stderr] ... | [INFO] [stderr] 155 | | false [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 130 | if let Some(_) = *self.contains_piece(old_pos) { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:139:21 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &None = self.contains_piece(p) { [INFO] [stderr] 140 | | return false; [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 139 | if let None = *self.contains_piece(p) { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.rows.enumerate()` or similar iterators [INFO] [stderr] --> src/graph.rs:200:20 [INFO] [stderr] | [INFO] [stderr] 200 | for row in &self.rows { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/graph.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | / if let &Some(Piece(id)) = col { [INFO] [stderr] 207 | | try!(write!(f,"[{: >#2}] ",id)); [INFO] [stderr] 208 | | } else { [INFO] [stderr] 209 | | try!(write!(f,"[ ] ")); [INFO] [stderr] 210 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | if let Some(Piece(id)) = *col { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | for j in 0..i+1 { [INFO] [stderr] | ^^^^^^ help: use: `0..=i` [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: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:45:18 [INFO] [stderr] | [INFO] [stderr] 45 | for j in 0..i+1 { [INFO] [stderr] | ^^^^^^ help: use: `0..=i` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | / if let &None = current.contains_piece(Point(i,j)) { [INFO] [stderr] 47 | | continue; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 46 | if let None = *current.contains_piece(Point(i,j)) { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.96s [INFO] running `"docker" "inspect" "26b0069511400681dbea0857e20394788f71d6653e765fde20123cccce1bf069"` [INFO] running `"docker" "rm" "-f" "26b0069511400681dbea0857e20394788f71d6653e765fde20123cccce1bf069"` [INFO] [stdout] 26b0069511400681dbea0857e20394788f71d6653e765fde20123cccce1bf069