[INFO] updating cached repository whostolemyhat/dungeon [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/whostolemyhat/dungeon [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/whostolemyhat/dungeon" "work/ex/clippy-test-run/sources/stable/gh/whostolemyhat/dungeon"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/whostolemyhat/dungeon'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/whostolemyhat/dungeon" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/whostolemyhat/dungeon"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/whostolemyhat/dungeon'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6db55577d633fae25441ee9dadb29dd31f5f11b0 [INFO] sha for GitHub repo whostolemyhat/dungeon: 6db55577d633fae25441ee9dadb29dd31f5f11b0 [INFO] validating manifest of whostolemyhat/dungeon 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 whostolemyhat/dungeon 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 whostolemyhat/dungeon [INFO] finished frobbing whostolemyhat/dungeon [INFO] frobbed toml for whostolemyhat/dungeon written to work/ex/clippy-test-run/sources/stable/gh/whostolemyhat/dungeon/Cargo.toml [INFO] started frobbing whostolemyhat/dungeon [INFO] finished frobbing whostolemyhat/dungeon [INFO] frobbed toml for whostolemyhat/dungeon written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/whostolemyhat/dungeon/Cargo.toml [INFO] crate whostolemyhat/dungeon 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 whostolemyhat/dungeon against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/whostolemyhat/dungeon:/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] 9b2ff97418a2b15e5577f027305edaa1501faa4eb5c783447e0f5797c86e0862 [INFO] running `"docker" "start" "-a" "9b2ff97418a2b15e5577f027305edaa1501faa4eb5c783447e0f5797c86e0862"` [INFO] [stderr] Compiling serde v1.0.68 [INFO] [stderr] Checking arrayref v0.3.4 [INFO] [stderr] Compiling cairo-rs v0.3.0 [INFO] [stderr] Compiling glib-sys v0.5.0 [INFO] [stderr] Compiling gobject-sys v0.5.0 [INFO] [stderr] Compiling cairo-sys-rs v0.5.0 [INFO] [stderr] Checking atty v0.2.10 [INFO] [stderr] Checking generic-array v0.9.0 [INFO] [stderr] Checking block-buffer v0.3.3 [INFO] [stderr] Compiling serde_derive v1.0.68 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking digest v0.7.4 [INFO] [stderr] Checking sha2 v0.7.1 [INFO] [stderr] Checking glib v0.4.1 [INFO] [stderr] Checking serde_json v1.0.22 [INFO] [stderr] Checking dungeon v2.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/level.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | write!(f, "{}\n", self.hash)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/level.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | write!(f, "\n")? [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/level.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | write!(f, "{}\n", self.hash)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/level.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | write!(f, "\n")? [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bsp.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if self.is_leaf() { [INFO] [stderr] 131 | | if self.split(rng) { [INFO] [stderr] 132 | | if let Some(ref mut left) = self.left_child { [INFO] [stderr] 133 | | left.as_mut().generate(rng); [INFO] [stderr] ... | [INFO] [stderr] 139 | | } [INFO] [stderr] 140 | | } [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] 130 | if self.is_leaf() && self.split(rng) { [INFO] [stderr] 131 | if let Some(ref mut left) = self.left_child { [INFO] [stderr] 132 | left.as_mut().generate(rng); [INFO] [stderr] 133 | }; [INFO] [stderr] 134 | [INFO] [stderr] 135 | if let Some(ref mut right) = self.right_child { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bsp.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if self.is_leaf() { [INFO] [stderr] 131 | | if self.split(rng) { [INFO] [stderr] 132 | | if let Some(ref mut left) = self.left_child { [INFO] [stderr] 133 | | left.as_mut().generate(rng); [INFO] [stderr] ... | [INFO] [stderr] 139 | | } [INFO] [stderr] 140 | | } [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] 130 | if self.is_leaf() && self.split(rng) { [INFO] [stderr] 131 | if let Some(ref mut left) = self.left_child { [INFO] [stderr] 132 | left.as_mut().generate(rng); [INFO] [stderr] 133 | }; [INFO] [stderr] 134 | [INFO] [stderr] 135 | if let Some(ref mut right) = self.right_child { [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/draw.rs:22:41 [INFO] [stderr] | [INFO] [stderr] 22 | fn draw_tiles(context: &Context, board: &Vec>, scale: f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:28:74 [INFO] [stderr] | [INFO] [stderr] 28 | Tile::Walkable => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.258, 0.525, 0.956)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:28:122 [INFO] [stderr] | [INFO] [stderr] 28 | Tile::Walkable => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.258, 0.525, 0.956)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:29:70 [INFO] [stderr] | [INFO] [stderr] 29 | Tile::Wall => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.956, 0.525, 0.258)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:29:118 [INFO] [stderr] | [INFO] [stderr] 29 | Tile::Wall => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.956, 0.525, 0.258)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/draw.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | row = row + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `row += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:43:36 [INFO] [stderr] | [INFO] [stderr] 43 | draw_tiles(&ctx, &level.board, level.tile_size as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(level.tile_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/level.rs:18:47 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(width: i32, height: i32, hash: &String, min_room_width: i32, min_room_height: i32) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(width: i32, height: i32, hash: &str, min_room_width: i32, min_room_height: i32) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `hash.clone()` to [INFO] [stderr] | [INFO] [stderr] 31 | hash: hash.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [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/level.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.board[y][x] { [INFO] [stderr] 55 | | Tile::Walkable => { [INFO] [stderr] 56 | | // ugly code to avoid overflow (ie < 0 in usize) [INFO] [stderr] 57 | | if x >= 1 { [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => () [INFO] [stderr] 77 | | } [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] 54 | if let Tile::Walkable = self.board[y][x] { [INFO] [stderr] 55 | // ugly code to avoid overflow (ie < 0 in usize) [INFO] [stderr] 56 | if x >= 1 { [INFO] [stderr] 57 | if y >= 1 { [INFO] [stderr] 58 | self.add_wall(x - 1, y - 1); [INFO] [stderr] 59 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/roomscorridors.rs:12:47 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/roomscorridors.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [INFO] [stderr] 13 | | let level = Level::new(width, height, hash, min_room_width, min_room_height); [INFO] [stderr] 14 | | [INFO] [stderr] 15 | | let mut map = RoomsCorridors { [INFO] [stderr] ... | [INFO] [stderr] 26 | | map.level [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/roomscorridors.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | for col in start_x..end_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `start_x..=end_x` [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/roomscorridors.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | for row in start_y..end_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `start_y..=end_y` [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 seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:90:21 [INFO] [stderr] | [INFO] [stderr] 90 | / match room.centre.x <= other.centre.x { [INFO] [stderr] 91 | | true => self.horz_corridor(room.centre.x, other.centre.x, room.centre.y), [INFO] [stderr] 92 | | false => self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.x <= other.centre.x { self.horz_corridor(room.centre.x, other.centre.x, room.centre.y) } else { self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:94:21 [INFO] [stderr] | [INFO] [stderr] 94 | / match room.centre.y <= other.centre.y { [INFO] [stderr] 95 | | true => self.vert_corridor(room.centre.y, other.centre.y, other.centre.x), [INFO] [stderr] 96 | | false => self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.y <= other.centre.y { self.vert_corridor(room.centre.y, other.centre.y, other.centre.x) } else { self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:100:21 [INFO] [stderr] | [INFO] [stderr] 100 | / match room.centre.y <= other.centre.y { [INFO] [stderr] 101 | | true => self.vert_corridor(room.centre.y, other.centre.y, other.centre.x), [INFO] [stderr] 102 | | false => self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) [INFO] [stderr] 103 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.y <= other.centre.y { self.vert_corridor(room.centre.y, other.centre.y, other.centre.x) } else { self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | / match room.centre.x <= other.centre.x { [INFO] [stderr] 105 | | true => self.horz_corridor(room.centre.x, other.centre.x, room.centre.y), [INFO] [stderr] 106 | | false => self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.x <= other.centre.x { self.horz_corridor(room.centre.x, other.centre.x, room.centre.y) } else { self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bsp.rs:14:47 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/bsp.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [INFO] [stderr] 15 | | let level = Level::new(width, height, hash, min_room_width, min_room_height); [INFO] [stderr] 16 | | [INFO] [stderr] 17 | | let mut map = BspLevel { [INFO] [stderr] ... | [INFO] [stderr] 27 | | map.level [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 159 [INFO] [stderr] --> src/bsp.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / fn place_rooms(&mut self, rng: &mut StdRng) { [INFO] [stderr] 31 | | let prebuilt = vec![ [INFO] [stderr] 32 | | vec![Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable], [INFO] [stderr] 33 | | vec![Tile::Empty, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Walkable, Tile::Walkable], [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/bsp.rs:121:21 [INFO] [stderr] | [INFO] [stderr] 121 | None => match self.right_child { [INFO] [stderr] | _____________________^ [INFO] [stderr] 122 | | None => true, [INFO] [stderr] 123 | | Some(_) => false, [INFO] [stderr] 124 | | }, [INFO] [stderr] | |_____________^ help: try this: `self.right_child.is_none()` [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 seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:158:19 [INFO] [stderr] | [INFO] [stderr] 158 | let max = match split_horz { [INFO] [stderr] | ___________________^ [INFO] [stderr] 159 | | true => self.height - self.min_size, [INFO] [stderr] 160 | | false => self.width - self.min_size [INFO] [stderr] 161 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if split_horz { self.height - self.min_size } else { self.width - self.min_size }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/bsp.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | fn create_corridors(rng: &mut StdRng, left: &mut Box, right: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&mut Leaf` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/bsp.rs:238:68 [INFO] [stderr] | [INFO] [stderr] 238 | fn create_corridors(rng: &mut StdRng, left: &mut Box, right: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&mut Leaf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | / match left_point.0 <= right_point.0 { [INFO] [stderr] 247 | | true => left.corridors.push(horz_corridor(left_point.0, left_point.1, right_point.0)), [INFO] [stderr] 248 | | false => left.corridors.push(horz_corridor(right_point.0, left_point.1, left_point.0)) [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.0 <= right_point.0 { left.corridors.push(horz_corridor(left_point.0, left_point.1, right_point.0)) } else { left.corridors.push(horz_corridor(right_point.0, left_point.1, left_point.0)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:250:17 [INFO] [stderr] | [INFO] [stderr] 250 | / match left_point.1 <= right_point.1 { [INFO] [stderr] 251 | | true => left.corridors.push(vert_corridor(right_point.0, left_point.1, right_point.1)), [INFO] [stderr] 252 | | false => left.corridors.push(vert_corridor(right_point.0, right_point.1, left_point.1)) [INFO] [stderr] 253 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.1 <= right_point.1 { left.corridors.push(vert_corridor(right_point.0, left_point.1, right_point.1)) } else { left.corridors.push(vert_corridor(right_point.0, right_point.1, left_point.1)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | / match left_point.1 <= right_point.1 { [INFO] [stderr] 257 | | true => left.corridors.push(vert_corridor(left_point.0, left_point.1, right_point.1)), [INFO] [stderr] 258 | | false => left.corridors.push(vert_corridor(left_point.0, right_point.1, left_point.1)) [INFO] [stderr] 259 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.1 <= right_point.1 { left.corridors.push(vert_corridor(left_point.0, left_point.1, right_point.1)) } else { left.corridors.push(vert_corridor(left_point.0, right_point.1, left_point.1)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:260:17 [INFO] [stderr] | [INFO] [stderr] 260 | / match left_point.0 <= right_point.0 { [INFO] [stderr] 261 | | true => left.corridors.push(horz_corridor(left_point.0, right_point.1, right_point.0)), [INFO] [stderr] 262 | | false => left.corridors.push(horz_corridor(right_point.0, right_point.1, left_point.0)) [INFO] [stderr] 263 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.0 <= right_point.0 { left.corridors.push(horz_corridor(left_point.0, right_point.1, right_point.0)) } else { left.corridors.push(horz_corridor(right_point.0, right_point.1, left_point.0)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [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/draw.rs:22:41 [INFO] [stderr] | [INFO] [stderr] 22 | fn draw_tiles(context: &Context, board: &Vec>, scale: f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:28:74 [INFO] [stderr] | [INFO] [stderr] 28 | Tile::Walkable => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.258, 0.525, 0.956)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:28:122 [INFO] [stderr] | [INFO] [stderr] 28 | Tile::Walkable => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.258, 0.525, 0.956)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:29:70 [INFO] [stderr] | [INFO] [stderr] 29 | Tile::Wall => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.956, 0.525, 0.258)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:29:118 [INFO] [stderr] | [INFO] [stderr] 29 | Tile::Wall => draw_tile(context, col as f64 * scale, row as f64 * scale, col as f64 * scale + scale, row as f64 * scale + scale, (0.956, 0.525, 0.258)), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/draw.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | row = row + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `row += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/draw.rs:43:36 [INFO] [stderr] | [INFO] [stderr] 43 | draw_tiles(&ctx, &level.board, level.tile_size as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(level.tile_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/level.rs:18:47 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(width: i32, height: i32, hash: &String, min_room_width: i32, min_room_height: i32) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(width: i32, height: i32, hash: &str, min_room_width: i32, min_room_height: i32) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `hash.clone()` to [INFO] [stderr] | [INFO] [stderr] 31 | hash: hash.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [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/level.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.board[y][x] { [INFO] [stderr] 55 | | Tile::Walkable => { [INFO] [stderr] 56 | | // ugly code to avoid overflow (ie < 0 in usize) [INFO] [stderr] 57 | | if x >= 1 { [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => () [INFO] [stderr] 77 | | } [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] 54 | if let Tile::Walkable = self.board[y][x] { [INFO] [stderr] 55 | // ugly code to avoid overflow (ie < 0 in usize) [INFO] [stderr] 56 | if x >= 1 { [INFO] [stderr] 57 | if y >= 1 { [INFO] [stderr] 58 | self.add_wall(x - 1, y - 1); [INFO] [stderr] 59 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 121 [INFO] [stderr] --> src/room.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | / fn test_macro() { [INFO] [stderr] 103 | | let room = room![ [INFO] [stderr] 104 | | [1, 1, 1, 1, 1], [INFO] [stderr] 105 | | [1, 1, 1, 1, 1], [INFO] [stderr] ... | [INFO] [stderr] 156 | | ]); [INFO] [stderr] 157 | | } [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/roomscorridors.rs:12:47 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/roomscorridors.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [INFO] [stderr] 13 | | let level = Level::new(width, height, hash, min_room_width, min_room_height); [INFO] [stderr] 14 | | [INFO] [stderr] 15 | | let mut map = RoomsCorridors { [INFO] [stderr] ... | [INFO] [stderr] 26 | | map.level [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/roomscorridors.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | for col in start_x..end_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `start_x..=end_x` [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/roomscorridors.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | for row in start_y..end_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `start_y..=end_y` [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 seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:90:21 [INFO] [stderr] | [INFO] [stderr] 90 | / match room.centre.x <= other.centre.x { [INFO] [stderr] 91 | | true => self.horz_corridor(room.centre.x, other.centre.x, room.centre.y), [INFO] [stderr] 92 | | false => self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.x <= other.centre.x { self.horz_corridor(room.centre.x, other.centre.x, room.centre.y) } else { self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:94:21 [INFO] [stderr] | [INFO] [stderr] 94 | / match room.centre.y <= other.centre.y { [INFO] [stderr] 95 | | true => self.vert_corridor(room.centre.y, other.centre.y, other.centre.x), [INFO] [stderr] 96 | | false => self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.y <= other.centre.y { self.vert_corridor(room.centre.y, other.centre.y, other.centre.x) } else { self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:100:21 [INFO] [stderr] | [INFO] [stderr] 100 | / match room.centre.y <= other.centre.y { [INFO] [stderr] 101 | | true => self.vert_corridor(room.centre.y, other.centre.y, other.centre.x), [INFO] [stderr] 102 | | false => self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) [INFO] [stderr] 103 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.y <= other.centre.y { self.vert_corridor(room.centre.y, other.centre.y, other.centre.x) } else { self.vert_corridor(other.centre.y, room.centre.y, other.centre.x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/roomscorridors.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | / match room.centre.x <= other.centre.x { [INFO] [stderr] 105 | | true => self.horz_corridor(room.centre.x, other.centre.x, room.centre.y), [INFO] [stderr] 106 | | false => self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if room.centre.x <= other.centre.x { self.horz_corridor(room.centre.x, other.centre.x, room.centre.y) } else { self.horz_corridor(other.centre.x, room.centre.x, room.centre.y) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bsp.rs:14:47 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/bsp.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new(width: i32, height: i32, hash: &String, rng: &mut StdRng, add_walls: bool, min_room_width: i32, min_room_height: i32) -> Level { [INFO] [stderr] 15 | | let level = Level::new(width, height, hash, min_room_width, min_room_height); [INFO] [stderr] 16 | | [INFO] [stderr] 17 | | let mut map = BspLevel { [INFO] [stderr] ... | [INFO] [stderr] 27 | | map.level [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 159 [INFO] [stderr] --> src/bsp.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / fn place_rooms(&mut self, rng: &mut StdRng) { [INFO] [stderr] 31 | | let prebuilt = vec![ [INFO] [stderr] 32 | | vec![Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable, Tile::Walkable], [INFO] [stderr] 33 | | vec![Tile::Empty, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Walkable, Tile::Walkable], [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/bsp.rs:121:21 [INFO] [stderr] | [INFO] [stderr] 121 | None => match self.right_child { [INFO] [stderr] | _____________________^ [INFO] [stderr] 122 | | None => true, [INFO] [stderr] 123 | | Some(_) => false, [INFO] [stderr] 124 | | }, [INFO] [stderr] | |_____________^ help: try this: `self.right_child.is_none()` [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 seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:158:19 [INFO] [stderr] | [INFO] [stderr] 158 | let max = match split_horz { [INFO] [stderr] | ___________________^ [INFO] [stderr] 159 | | true => self.height - self.min_size, [INFO] [stderr] 160 | | false => self.width - self.min_size [INFO] [stderr] 161 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if split_horz { self.height - self.min_size } else { self.width - self.min_size }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/bsp.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | fn create_corridors(rng: &mut StdRng, left: &mut Box, right: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&mut Leaf` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/bsp.rs:238:68 [INFO] [stderr] | [INFO] [stderr] 238 | fn create_corridors(rng: &mut StdRng, left: &mut Box, right: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&mut Leaf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | / match left_point.0 <= right_point.0 { [INFO] [stderr] 247 | | true => left.corridors.push(horz_corridor(left_point.0, left_point.1, right_point.0)), [INFO] [stderr] 248 | | false => left.corridors.push(horz_corridor(right_point.0, left_point.1, left_point.0)) [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.0 <= right_point.0 { left.corridors.push(horz_corridor(left_point.0, left_point.1, right_point.0)) } else { left.corridors.push(horz_corridor(right_point.0, left_point.1, left_point.0)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:250:17 [INFO] [stderr] | [INFO] [stderr] 250 | / match left_point.1 <= right_point.1 { [INFO] [stderr] 251 | | true => left.corridors.push(vert_corridor(right_point.0, left_point.1, right_point.1)), [INFO] [stderr] 252 | | false => left.corridors.push(vert_corridor(right_point.0, right_point.1, left_point.1)) [INFO] [stderr] 253 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.1 <= right_point.1 { left.corridors.push(vert_corridor(right_point.0, left_point.1, right_point.1)) } else { left.corridors.push(vert_corridor(right_point.0, right_point.1, left_point.1)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | / match left_point.1 <= right_point.1 { [INFO] [stderr] 257 | | true => left.corridors.push(vert_corridor(left_point.0, left_point.1, right_point.1)), [INFO] [stderr] 258 | | false => left.corridors.push(vert_corridor(left_point.0, right_point.1, left_point.1)) [INFO] [stderr] 259 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.1 <= right_point.1 { left.corridors.push(vert_corridor(left_point.0, left_point.1, right_point.1)) } else { left.corridors.push(vert_corridor(left_point.0, right_point.1, left_point.1)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/bsp.rs:260:17 [INFO] [stderr] | [INFO] [stderr] 260 | / match left_point.0 <= right_point.0 { [INFO] [stderr] 261 | | true => left.corridors.push(horz_corridor(left_point.0, right_point.1, right_point.0)), [INFO] [stderr] 262 | | false => left.corridors.push(horz_corridor(right_point.0, right_point.1, left_point.0)) [INFO] [stderr] 263 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if left_point.0 <= right_point.0 { left.corridors.push(horz_corridor(left_point.0, right_point.1, right_point.0)) } else { left.corridors.push(horz_corridor(right_point.0, right_point.1, left_point.0)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 35.43s [INFO] running `"docker" "inspect" "9b2ff97418a2b15e5577f027305edaa1501faa4eb5c783447e0f5797c86e0862"` [INFO] running `"docker" "rm" "-f" "9b2ff97418a2b15e5577f027305edaa1501faa4eb5c783447e0f5797c86e0862"` [INFO] [stdout] 9b2ff97418a2b15e5577f027305edaa1501faa4eb5c783447e0f5797c86e0862