[INFO] updating cached repository kbsymanz/maze-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kbsymanz/maze-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kbsymanz/maze-rust" "work/ex/clippy-test-run/sources/stable/gh/kbsymanz/maze-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kbsymanz/maze-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kbsymanz/maze-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kbsymanz/maze-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kbsymanz/maze-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a75cd76535d340c6bfca094cbb8801215cbe9072 [INFO] sha for GitHub repo kbsymanz/maze-rust: a75cd76535d340c6bfca094cbb8801215cbe9072 [INFO] validating manifest of kbsymanz/maze-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 kbsymanz/maze-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 kbsymanz/maze-rust [INFO] finished frobbing kbsymanz/maze-rust [INFO] frobbed toml for kbsymanz/maze-rust written to work/ex/clippy-test-run/sources/stable/gh/kbsymanz/maze-rust/Cargo.toml [INFO] started frobbing kbsymanz/maze-rust [INFO] finished frobbing kbsymanz/maze-rust [INFO] frobbed toml for kbsymanz/maze-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kbsymanz/maze-rust/Cargo.toml [INFO] crate kbsymanz/maze-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 kbsymanz/maze-rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kbsymanz/maze-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" "-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] deac776242cc7d6eded4f6fb87faeb48c03bb1859dec246f7acd920eca3932d6 [INFO] running `"docker" "start" "-a" "deac776242cc7d6eded4f6fb87faeb48c03bb1859dec246f7acd920eca3932d6"` [INFO] [stderr] Compiling cairo-rs v0.1.2 [INFO] [stderr] Checking bitflags v0.5.0 [INFO] [stderr] Compiling gdk-pixbuf v0.1.2 [INFO] [stderr] Compiling gio v0.1.2 [INFO] [stderr] Checking c_vec v1.2.0 [INFO] [stderr] Compiling gdk v0.5.2 [INFO] [stderr] Compiling gtk v0.1.2 [INFO] [stderr] Checking serde v0.9.13 [INFO] [stderr] Checking itertools v0.4.19 [INFO] [stderr] Compiling glib-sys v0.3.3 [INFO] [stderr] Compiling gobject-sys v0.3.3 [INFO] [stderr] Compiling gio-sys v0.3.3 [INFO] [stderr] Compiling cairo-sys-rs v0.3.3 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.3.3 [INFO] [stderr] Compiling pango-sys v0.3.3 [INFO] [stderr] Compiling atk-sys v0.3.3 [INFO] [stderr] Compiling gdk-sys v0.3.3 [INFO] [stderr] Compiling gtk-sys v0.3.3 [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Checking num-complex v0.1.37 [INFO] [stderr] Checking deflate v0.7.6 [INFO] [stderr] Checking gif v0.9.1 [INFO] [stderr] Checking deque v0.3.1 [INFO] [stderr] Checking uuid v0.4.0 [INFO] [stderr] Checking clap v2.23.2 [INFO] [stderr] Checking num-bigint v0.1.37 [INFO] [stderr] Compiling syn v0.11.10 [INFO] [stderr] Checking arrayvec v0.3.22 [INFO] [stderr] Checking rayon-core v1.0.0 [INFO] [stderr] Checking png v0.6.2 [INFO] [stderr] Checking num-rational v0.1.36 [INFO] [stderr] Checking rusttype v0.2.1 [INFO] [stderr] Checking rayon v0.7.0 [INFO] [stderr] Checking num v0.1.37 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking nalgebra v0.5.1 [INFO] [stderr] Checking quickcheck v0.2.27 [INFO] [stderr] Checking glib v0.1.2 [INFO] [stderr] Compiling serde_codegen_internals v0.14.2 [INFO] [stderr] Checking jpeg-decoder v0.1.12 [INFO] [stderr] Checking pango v0.1.2 [INFO] [stderr] Compiling serde_derive v0.9.13 [INFO] [stderr] Checking serde_json v0.9.10 [INFO] [stderr] Checking image v0.12.3 [INFO] [stderr] Checking imageproc v0.7.0 [INFO] [stderr] Checking maze-rust v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/grid.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/grid.rs:53:31 [INFO] [stderr] | [INFO] [stderr] 53 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: using `println!("")` [INFO] [stderr] --> src/grid.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/grid.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/grid.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/grid.rs:53:31 [INFO] [stderr] | [INFO] [stderr] 53 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: using `println!("")` [INFO] [stderr] --> src/grid.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/grid.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/utils.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | n [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/utils.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | let n = neighbors; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/utils.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | n [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/utils.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | let n = neighbors; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/grid.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | serialized [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/grid.rs:194:26 [INFO] [stderr] | [INFO] [stderr] 194 | let serialized = serde_json::to_string(&self.cells).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/grid.rs:227:25 [INFO] [stderr] | [INFO] [stderr] 227 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/grid.rs:232:25 [INFO] [stderr] | [INFO] [stderr] 232 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/utils.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | n [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/utils.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | let n = neighbors; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/utils.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | n [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/utils.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | let n = neighbors; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/grid.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | serialized [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/grid.rs:194:26 [INFO] [stderr] | [INFO] [stderr] 194 | let serialized = serde_json::to_string(&self.cells).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/grid.rs:227:25 [INFO] [stderr] | [INFO] [stderr] 227 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/grid.rs:232:25 [INFO] [stderr] | [INFO] [stderr] 232 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/utils.rs:15:48 [INFO] [stderr] | [INFO] [stderr] 15 | visited: &HashSet<(usize, usize)>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 11 | pub fn get_random_unvisited_neighbor(cx: usize, [INFO] [stderr] 12 | cy: usize, [INFO] [stderr] 13 | width: usize, [INFO] [stderr] 14 | height: usize, [INFO] [stderr] 15 | visited: &HashSet<(usize, usize), S>) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/utils.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 19 | if neighbors.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `neighbors.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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/grid.rs:54:34 [INFO] [stderr] | [INFO] [stderr] 54 | n: (if x == 0 && y == 0 { true } else { false }), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `x == 0 && y == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/grid.rs:56:34 [INFO] [stderr] | [INFO] [stderr] 56 | s: (if x == self.width - 1 && y == self.height - 1 { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 57 | | true [INFO] [stderr] 58 | | } else { [INFO] [stderr] 59 | | false [INFO] [stderr] 60 | | }), [INFO] [stderr] | |____________________________________^ help: you can reduce it to: `x == self.width - 1 && y == self.height - 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/grid.rs:111:34 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn save_png(&self, name: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | if cell.n == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.n` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:141:16 [INFO] [stderr] | [INFO] [stderr] 141 | if cell.s == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.s` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:150:16 [INFO] [stderr] | [INFO] [stderr] 150 | if cell.e == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:159:16 [INFO] [stderr] | [INFO] [stderr] 159 | if cell.w == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/grid.rs:182:39 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn save_json(&self, filename: &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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/grid.rs:223:17 [INFO] [stderr] | [INFO] [stderr] 223 | / match last { [INFO] [stderr] 224 | | Some(lst) => { [INFO] [stderr] 225 | | // Check if there are any more unvisited cells here. [INFO] [stderr] 226 | | self.carve(lst.0, lst.1); [INFO] [stderr] ... | [INFO] [stderr] 233 | | } [INFO] [stderr] 234 | | } [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] 223 | if let Some(lst) = last { [INFO] [stderr] 224 | // Check if there are any more unvisited cells here. [INFO] [stderr] 225 | self.carve(lst.0, lst.1); [INFO] [stderr] 226 | () [INFO] [stderr] 227 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/gui/main_gui.rs:102:40 [INFO] [stderr] | [INFO] [stderr] 102 | fn run_generate_maze(maze_size: usize, ref maze_image: >k::Image) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/gui/main_gui.rs:118:28 [INFO] [stderr] | [INFO] [stderr] 118 | fn generate_maze(fullname: &String, size: usize) { [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: length comparison to zero [INFO] [stderr] --> src/test.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | assert!(too_right.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `too_right.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: length comparison to zero [INFO] [stderr] --> src/test.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | assert!(too_bottom.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `too_bottom.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: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/utils.rs:15:48 [INFO] [stderr] | [INFO] [stderr] 15 | visited: &HashSet<(usize, usize)>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 11 | pub fn get_random_unvisited_neighbor(cx: usize, [INFO] [stderr] 12 | cy: usize, [INFO] [stderr] 13 | width: usize, [INFO] [stderr] 14 | height: usize, [INFO] [stderr] 15 | visited: &HashSet<(usize, usize), S>) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/utils.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 19 | if neighbors.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `neighbors.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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/grid.rs:54:34 [INFO] [stderr] | [INFO] [stderr] 54 | n: (if x == 0 && y == 0 { true } else { false }), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `x == 0 && y == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/grid.rs:56:34 [INFO] [stderr] | [INFO] [stderr] 56 | s: (if x == self.width - 1 && y == self.height - 1 { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 57 | | true [INFO] [stderr] 58 | | } else { [INFO] [stderr] 59 | | false [INFO] [stderr] 60 | | }), [INFO] [stderr] | |____________________________________^ help: you can reduce it to: `x == self.width - 1 && y == self.height - 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/grid.rs:111:34 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn save_png(&self, name: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | if cell.n == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.n` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:141:16 [INFO] [stderr] | [INFO] [stderr] 141 | if cell.s == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.s` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:150:16 [INFO] [stderr] | [INFO] [stderr] 150 | if cell.e == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/grid.rs:159:16 [INFO] [stderr] | [INFO] [stderr] 159 | if cell.w == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!cell.w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/grid.rs:182:39 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn save_json(&self, filename: &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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/grid.rs:223:17 [INFO] [stderr] | [INFO] [stderr] 223 | / match last { [INFO] [stderr] 224 | | Some(lst) => { [INFO] [stderr] 225 | | // Check if there are any more unvisited cells here. [INFO] [stderr] 226 | | self.carve(lst.0, lst.1); [INFO] [stderr] ... | [INFO] [stderr] 233 | | } [INFO] [stderr] 234 | | } [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] 223 | if let Some(lst) = last { [INFO] [stderr] 224 | // Check if there are any more unvisited cells here. [INFO] [stderr] 225 | self.carve(lst.0, lst.1); [INFO] [stderr] 226 | () [INFO] [stderr] 227 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/gui/main_gui.rs:102:40 [INFO] [stderr] | [INFO] [stderr] 102 | fn run_generate_maze(maze_size: usize, ref maze_image: >k::Image) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/gui/main_gui.rs:118:28 [INFO] [stderr] | [INFO] [stderr] 118 | fn generate_maze(fullname: &String, size: usize) { [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: using `println!("")` [INFO] [stderr] --> src/main.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/main.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: unused import: `kbsymanz_maze::grid` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use kbsymanz_maze::grid; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `main_gui` [INFO] [stderr] --> src/main.rs:11:36 [INFO] [stderr] | [INFO] [stderr] 11 | use kbsymanz_maze::gui::main_gui::{main_gui}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `App`, `Arg` [INFO] [stderr] --> src/main.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use clap::{App, Arg}; [INFO] [stderr] | ^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 18s [INFO] running `"docker" "inspect" "deac776242cc7d6eded4f6fb87faeb48c03bb1859dec246f7acd920eca3932d6"` [INFO] running `"docker" "rm" "-f" "deac776242cc7d6eded4f6fb87faeb48c03bb1859dec246f7acd920eca3932d6"` [INFO] [stdout] deac776242cc7d6eded4f6fb87faeb48c03bb1859dec246f7acd920eca3932d6