[INFO] updating cached repository doup/grid_2d_pathfinding [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/doup/grid_2d_pathfinding [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/doup/grid_2d_pathfinding" "work/ex/clippy-test-run/sources/stable/gh/doup/grid_2d_pathfinding"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/doup/grid_2d_pathfinding'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/doup/grid_2d_pathfinding" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/doup/grid_2d_pathfinding"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/doup/grid_2d_pathfinding'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 567bc8f950550131214bdcb026a57275c5385486 [INFO] sha for GitHub repo doup/grid_2d_pathfinding: 567bc8f950550131214bdcb026a57275c5385486 [INFO] validating manifest of doup/grid_2d_pathfinding 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 doup/grid_2d_pathfinding 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 doup/grid_2d_pathfinding [INFO] finished frobbing doup/grid_2d_pathfinding [INFO] frobbed toml for doup/grid_2d_pathfinding written to work/ex/clippy-test-run/sources/stable/gh/doup/grid_2d_pathfinding/Cargo.toml [INFO] started frobbing doup/grid_2d_pathfinding [INFO] finished frobbing doup/grid_2d_pathfinding [INFO] frobbed toml for doup/grid_2d_pathfinding written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/doup/grid_2d_pathfinding/Cargo.toml [INFO] crate doup/grid_2d_pathfinding 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 doup/grid_2d_pathfinding against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/doup/grid_2d_pathfinding:/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] 7de488e7daed45b8fa8c1632475cb4aea755de0a25c0936bb6d02ed0ce694b5a [INFO] running `"docker" "start" "-a" "7de488e7daed45b8fa8c1632475cb4aea755de0a25c0936bb6d02ed0ce694b5a"` [INFO] [stderr] Compiling itoa v0.3.3 [INFO] [stderr] Compiling glium v0.17.1 [INFO] [stderr] Compiling serde_json v0.9.10 [INFO] [stderr] Compiling target_build_utils v0.3.1 [INFO] [stderr] Compiling libloading v0.3.4 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.9.10 [INFO] [stderr] Checking wayland-client v0.9.10 [INFO] [stderr] Checking wayland-protocols v0.9.10 [INFO] [stderr] Checking wayland-kbd v0.9.1 [INFO] [stderr] Checking wayland-window v0.7.0 [INFO] [stderr] Checking winit v0.7.6 [INFO] [stderr] Checking glutin v0.9.2 [INFO] [stderr] Checking grid_2d_pathfinding v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/renderer.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | shaders: shaders, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `shaders` [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/scene.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scene.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scene.rs:36:45 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `tiles` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/renderer.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | shaders: shaders, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `shaders` [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/scene.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scene.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scene.rs:36:45 [INFO] [stderr] | [INFO] [stderr] 36 | Map { width: width, height: height, tiles: tiles } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `tiles` [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: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/scene.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 63 | if y - 1 >= 0 && self.get_tile(Point::new(x, y - 1)) != 1 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 63 | if y > 0 && self.get_tile(Point::new(x, y - 1)) != 1 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/scene.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 68 | if x - 1 >= 0 && self.get_tile(Point::new(x - 1, y)) != 1 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 68 | if x > 0 && self.get_tile(Point::new(x - 1, y)) != 1 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/scene.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 63 | if y - 1 >= 0 && self.get_tile(Point::new(x, y - 1)) != 1 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 63 | if y > 0 && self.get_tile(Point::new(x, y - 1)) != 1 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/scene.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 68 | if x - 1 >= 0 && self.get_tile(Point::new(x - 1, y)) != 1 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 68 | if x > 0 && self.get_tile(Point::new(x - 1, y)) != 1 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `right` [INFO] [stderr] --> src/renderer.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn right(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bottom` [INFO] [stderr] --> src/renderer.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn bottom(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `viewport_margin` [INFO] [stderr] --> src/renderer.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | viewport_margin: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `top_bar_height` [INFO] [stderr] --> src/renderer.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | top_bar_height: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/renderer.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | implement_vertex!(Vertex, position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::forget_copy)] on by default [INFO] [stderr] note: argument has type renderer::Vertex [INFO] [stderr] --> src/renderer.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | implement_vertex!(Vertex, position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/renderer.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match *object_data { [INFO] [stderr] 91 | | Some(ref object) => { [INFO] [stderr] 92 | | target.draw( [INFO] [stderr] 93 | | &object.vertex_buffer, [INFO] [stderr] ... | [INFO] [stderr] 100 | | None => (), [INFO] [stderr] 101 | | } [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] 90 | if let Some(ref object) = *object_data { [INFO] [stderr] 91 | target.draw( [INFO] [stderr] 92 | &object.vertex_buffer, [INFO] [stderr] 93 | glium::index::NoIndices(object.indices), [INFO] [stderr] 94 | &object.program, [INFO] [stderr] 95 | &glium::uniforms::EmptyUniforms, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:125:29 [INFO] [stderr] | [INFO] [stderr] 125 | let vertex_shader = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:126:31 [INFO] [stderr] | [INFO] [stderr] 126 | let fragment_shader = self.shaders.get(&String::from("walkable.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("walkable.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:136:29 [INFO] [stderr] | [INFO] [stderr] 136 | let vertex_shader = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:137:31 [INFO] [stderr] | [INFO] [stderr] 137 | let fragment_shader = self.shaders.get(&String::from("walls.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("walls.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:147:33 [INFO] [stderr] | [INFO] [stderr] 147 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:148:31 [INFO] [stderr] | [INFO] [stderr] 148 | let fragment_shader = self.shaders.get(&String::from("path.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("path.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:158:33 [INFO] [stderr] | [INFO] [stderr] 158 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:159:31 [INFO] [stderr] | [INFO] [stderr] 159 | let fragment_shader = self.shaders.get(&String::from("origin.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("origin.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:169:33 [INFO] [stderr] | [INFO] [stderr] 169 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:170:31 [INFO] [stderr] | [INFO] [stderr] 170 | let fragment_shader = self.shaders.get(&String::from("target.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("target.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:181:49 [INFO] [stderr] | [INFO] [stderr] 181 | let cell_width = self.map_bbox.width / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:182:50 [INFO] [stderr] | [INFO] [stderr] 182 | let cell_height = self.map_bbox.height / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:186:48 [INFO] [stderr] | [INFO] [stderr] 186 | let left = self.map_bbox.x + x as f32 * cell_width + padding; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:187:48 [INFO] [stderr] | [INFO] [stderr] 187 | let top = self.map_bbox.y - y as f32 * cell_height - padding; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(y)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:207:49 [INFO] [stderr] | [INFO] [stderr] 207 | let cell_width = self.map_bbox.width / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:208:50 [INFO] [stderr] | [INFO] [stderr] 208 | let cell_height = self.map_bbox.height / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:211:39 [INFO] [stderr] | [INFO] [stderr] 211 | let x = self.map_bbox.x + point.get_x() as f32 * cell_width + cell_width / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_x())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:212:39 [INFO] [stderr] | [INFO] [stderr] 212 | let y = self.map_bbox.y - point.get_y() as f32 * cell_height - cell_height / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_y())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:231:49 [INFO] [stderr] | [INFO] [stderr] 231 | let cell_height = self.map_bbox.width / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | let cell_width = self.map_bbox.height / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:233:36 [INFO] [stderr] | [INFO] [stderr] 233 | let x = self.map_bbox.x + (point.get_x() as f32 * cell_width) + cell_width / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_x())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:234:36 [INFO] [stderr] | [INFO] [stderr] 234 | let y = self.map_bbox.y - (point.get_y() as f32 * cell_height) - cell_height / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_y())` [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: length comparison to zero [INFO] [stderr] --> src/scene.rs:119:15 [INFO] [stderr] | [INFO] [stderr] 119 | while frontier.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!frontier.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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/scene.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | / if !self.came_from.contains_key(&next) { [INFO] [stderr] 123 | | frontier.push(next.clone()); [INFO] [stderr] 124 | | self.came_from.insert(next, current.clone()); [INFO] [stderr] 125 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.came_from.entry(next)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/scene.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | let from = self.came_from.get(&target).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.came_from[&target]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:19:46 [INFO] [stderr] | [INFO] [stderr] 19 | let mut map_x = (((ogl_x - map_bbox.x) * map.width as f32) / map_bbox.width) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:20:47 [INFO] [stderr] | [INFO] [stderr] 20 | let mut map_y = -(((ogl_y - map_bbox.y) * map.height as f32) / map_bbox.height) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / match event { [INFO] [stderr] 73 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 74 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 75 | | glutin::WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 117 | | _ => (), [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 72 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 73 | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 74 | glutin::WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 75 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] 76 | match input.virtual_keycode.unwrap() { [INFO] [stderr] 77 | glutin::VirtualKeyCode::Escape => closed = true, [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/main.rs:88:78 [INFO] [stderr] | [INFO] [stderr] 88 | glutin::WindowEvent::MouseInput { state, button, .. } => match state { [INFO] [stderr] | ______________________________________________________________________________^ [INFO] [stderr] 89 | | glutin::ElementState::Pressed => { [INFO] [stderr] 90 | | let map_position = get_map_position( [INFO] [stderr] 91 | | &renderer.get_viewport(), [INFO] [stderr] ... | [INFO] [stderr] 113 | | _ => (), [INFO] [stderr] 114 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 88 | glutin::WindowEvent::MouseInput { state, button, .. } => if let glutin::ElementState::Pressed = state { [INFO] [stderr] 89 | let map_position = get_map_position( [INFO] [stderr] 90 | &renderer.get_viewport(), [INFO] [stderr] 91 | (mouse_position.0 as f32, mouse_position.1 as f32), [INFO] [stderr] 92 | scene.map(), [INFO] [stderr] 93 | &renderer.get_map_bbox() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `grid_2d_pathfinding`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `right` [INFO] [stderr] --> src/renderer.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn right(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bottom` [INFO] [stderr] --> src/renderer.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn bottom(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `viewport_margin` [INFO] [stderr] --> src/renderer.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | viewport_margin: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `top_bar_height` [INFO] [stderr] --> src/renderer.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | top_bar_height: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/renderer.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | implement_vertex!(Vertex, position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::forget_copy)] on by default [INFO] [stderr] note: argument has type renderer::Vertex [INFO] [stderr] --> src/renderer.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | implement_vertex!(Vertex, position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/renderer.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match *object_data { [INFO] [stderr] 91 | | Some(ref object) => { [INFO] [stderr] 92 | | target.draw( [INFO] [stderr] 93 | | &object.vertex_buffer, [INFO] [stderr] ... | [INFO] [stderr] 100 | | None => (), [INFO] [stderr] 101 | | } [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] 90 | if let Some(ref object) = *object_data { [INFO] [stderr] 91 | target.draw( [INFO] [stderr] 92 | &object.vertex_buffer, [INFO] [stderr] 93 | glium::index::NoIndices(object.indices), [INFO] [stderr] 94 | &object.program, [INFO] [stderr] 95 | &glium::uniforms::EmptyUniforms, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:125:29 [INFO] [stderr] | [INFO] [stderr] 125 | let vertex_shader = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:126:31 [INFO] [stderr] | [INFO] [stderr] 126 | let fragment_shader = self.shaders.get(&String::from("walkable.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("walkable.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:136:29 [INFO] [stderr] | [INFO] [stderr] 136 | let vertex_shader = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:137:31 [INFO] [stderr] | [INFO] [stderr] 137 | let fragment_shader = self.shaders.get(&String::from("walls.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("walls.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:147:33 [INFO] [stderr] | [INFO] [stderr] 147 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:148:31 [INFO] [stderr] | [INFO] [stderr] 148 | let fragment_shader = self.shaders.get(&String::from("path.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("path.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:158:33 [INFO] [stderr] | [INFO] [stderr] 158 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:159:31 [INFO] [stderr] | [INFO] [stderr] 159 | let fragment_shader = self.shaders.get(&String::from("origin.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("origin.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:169:33 [INFO] [stderr] | [INFO] [stderr] 169 | let vertex_shader_src = self.shaders.get(&String::from("vertex.vert")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("vertex.vert")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/renderer.rs:170:31 [INFO] [stderr] | [INFO] [stderr] 170 | let fragment_shader = self.shaders.get(&String::from("target.frag")).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.shaders[&String::from("target.frag")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:181:49 [INFO] [stderr] | [INFO] [stderr] 181 | let cell_width = self.map_bbox.width / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:182:50 [INFO] [stderr] | [INFO] [stderr] 182 | let cell_height = self.map_bbox.height / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:186:48 [INFO] [stderr] | [INFO] [stderr] 186 | let left = self.map_bbox.x + x as f32 * cell_width + padding; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:187:48 [INFO] [stderr] | [INFO] [stderr] 187 | let top = self.map_bbox.y - y as f32 * cell_height - padding; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(y)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:207:49 [INFO] [stderr] | [INFO] [stderr] 207 | let cell_width = self.map_bbox.width / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:208:50 [INFO] [stderr] | [INFO] [stderr] 208 | let cell_height = self.map_bbox.height / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:211:39 [INFO] [stderr] | [INFO] [stderr] 211 | let x = self.map_bbox.x + point.get_x() as f32 * cell_width + cell_width / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_x())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:212:39 [INFO] [stderr] | [INFO] [stderr] 212 | let y = self.map_bbox.y - point.get_y() as f32 * cell_height - cell_height / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_y())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:231:49 [INFO] [stderr] | [INFO] [stderr] 231 | let cell_height = self.map_bbox.width / map.height as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | let cell_width = self.map_bbox.height / map.width as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:233:36 [INFO] [stderr] | [INFO] [stderr] 233 | let x = self.map_bbox.x + (point.get_x() as f32 * cell_width) + cell_width / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_x())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:234:36 [INFO] [stderr] | [INFO] [stderr] 234 | let y = self.map_bbox.y - (point.get_y() as f32 * cell_height) - cell_height / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(point.get_y())` [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: length comparison to zero [INFO] [stderr] --> src/scene.rs:119:15 [INFO] [stderr] | [INFO] [stderr] 119 | while frontier.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!frontier.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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/scene.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | / if !self.came_from.contains_key(&next) { [INFO] [stderr] 123 | | frontier.push(next.clone()); [INFO] [stderr] 124 | | self.came_from.insert(next, current.clone()); [INFO] [stderr] 125 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.came_from.entry(next)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/scene.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | let from = self.came_from.get(&target).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.came_from[&target]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:19:46 [INFO] [stderr] | [INFO] [stderr] 19 | let mut map_x = (((ogl_x - map_bbox.x) * map.width as f32) / map_bbox.width) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(map.width)` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:20:47 [INFO] [stderr] | [INFO] [stderr] 20 | let mut map_y = -(((ogl_y - map_bbox.y) * map.height as f32) / map_bbox.height) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(map.height)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / match event { [INFO] [stderr] 73 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 74 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 75 | | glutin::WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 117 | | _ => (), [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 72 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 73 | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 74 | glutin::WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 75 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] 76 | match input.virtual_keycode.unwrap() { [INFO] [stderr] 77 | glutin::VirtualKeyCode::Escape => closed = true, [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/main.rs:88:78 [INFO] [stderr] | [INFO] [stderr] 88 | glutin::WindowEvent::MouseInput { state, button, .. } => match state { [INFO] [stderr] | ______________________________________________________________________________^ [INFO] [stderr] 89 | | glutin::ElementState::Pressed => { [INFO] [stderr] 90 | | let map_position = get_map_position( [INFO] [stderr] 91 | | &renderer.get_viewport(), [INFO] [stderr] ... | [INFO] [stderr] 113 | | _ => (), [INFO] [stderr] 114 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 88 | glutin::WindowEvent::MouseInput { state, button, .. } => if let glutin::ElementState::Pressed = state { [INFO] [stderr] 89 | let map_position = get_map_position( [INFO] [stderr] 90 | &renderer.get_viewport(), [INFO] [stderr] 91 | (mouse_position.0 as f32, mouse_position.1 as f32), [INFO] [stderr] 92 | scene.map(), [INFO] [stderr] 93 | &renderer.get_map_bbox() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `grid_2d_pathfinding`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "7de488e7daed45b8fa8c1632475cb4aea755de0a25c0936bb6d02ed0ce694b5a"` [INFO] running `"docker" "rm" "-f" "7de488e7daed45b8fa8c1632475cb4aea755de0a25c0936bb6d02ed0ce694b5a"` [INFO] [stdout] 7de488e7daed45b8fa8c1632475cb4aea755de0a25c0936bb6d02ed0ce694b5a