[INFO] cloning repository https://github.com/Roundabout1776/almanacx [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Roundabout1776/almanacx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoundabout1776%2Falmanacx", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoundabout1776%2Falmanacx'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d2a9c776b2849c368fc3ae83075e5ae5d12c6981 [INFO] linting Roundabout1776/almanacx against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoundabout1776%2Falmanacx" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Roundabout1776/almanacx [INFO] finished tweaking git repo https://github.com/Roundabout1776/almanacx [INFO] tweaked toml for git repo https://github.com/Roundabout1776/almanacx written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Roundabout1776/almanacx on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Roundabout1776/almanacx already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded version-compare v0.1.0 [INFO] [stderr] Downloaded sdl2 v0.35.2 [INFO] [stderr] Downloaded sdl2-sys v0.35.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 939244dc000896a7784a56c4ec75f37ea46f42935652869762bac3dd5bacf184 [INFO] running `Command { std: "docker" "start" "-a" "939244dc000896a7784a56c4ec75f37ea46f42935652869762bac3dd5bacf184", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "939244dc000896a7784a56c4ec75f37ea46f42935652869762bac3dd5bacf184", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "939244dc000896a7784a56c4ec75f37ea46f42935652869762bac3dd5bacf184", kill_on_drop: false }` [INFO] [stdout] 939244dc000896a7784a56c4ec75f37ea46f42935652869762bac3dd5bacf184 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 206ecbd9569fed44d6f74c8574ae3f439c30b20ec30114484a4b567b54595939 [INFO] running `Command { std: "docker" "start" "-a" "206ecbd9569fed44d6f74c8574ae3f439c30b20ec30114484a4b567b54595939", kill_on_drop: false }` [INFO] [stderr] Compiling version-compare v0.1.0 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.137 [INFO] [stderr] Compiling sdl2 v0.35.2 [INFO] [stderr] Compiling cgmath v0.18.0 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling sdl2-sys v0.35.2 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking approx v0.4.0 [INFO] [stderr] Checking common v0.0.1 (/opt/rustwide/workdir/common) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | texture: texture, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `texture` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/mod.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | width: width, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/mod.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | height: height, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `self` [INFO] [stdout] --> common/src/image/bmp.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | io::{self, ErrorKind, Read, Seek, SeekFrom}, [INFO] [stdout] | ^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Vector4` and `Zero` [INFO] [stdout] --> common/src/math.rs:1:67 [INFO] [stdout] | [INFO] [stdout] 1 | use cgmath::{InnerSpace, Matrix4, SquareMatrix, Vector2, Vector3, Vector4, Zero}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InnerSpace`, `Rad`, and `Zero` [INFO] [stdout] --> common/src/renderer/camera.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use cgmath::{InnerSpace, Matrix4, Rad, SquareMatrix, Vector3, Zero}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/renderer/camera.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | near: near, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `near` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/renderer/camera.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | far: far, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `far` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `buffer2d::B2DT` [INFO] [stdout] --> common/src/renderer/utils.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{buffer2d::B2DT, utils::color_from_tuple}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | texture: texture, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `texture` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/mod.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | width: width, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/buffer2d/mod.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | height: height, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `self` [INFO] [stdout] --> common/src/image/bmp.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | io::{self, ErrorKind, Read, Seek, SeekFrom}, [INFO] [stdout] | ^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Vector4` and `Zero` [INFO] [stdout] --> common/src/math.rs:1:67 [INFO] [stdout] | [INFO] [stdout] 1 | use cgmath::{InnerSpace, Matrix4, SquareMatrix, Vector2, Vector3, Vector4, Zero}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InnerSpace`, `Rad`, and `Zero` [INFO] [stdout] --> common/src/renderer/camera.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use cgmath::{InnerSpace, Matrix4, Rad, SquareMatrix, Vector3, Zero}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/renderer/camera.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | near: near, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `near` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> common/src/renderer/camera.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | far: far, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `far` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `buffer2d::B2DT` [INFO] [stdout] --> common/src/renderer/utils.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{buffer2d::B2DT, utils::color_from_tuple}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `z` is assigned to, but never used [INFO] [stdout] --> common/src/buffer2d/mod.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut z = z0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_z` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `z` is never read [INFO] [stdout] --> common/src/buffer2d/mod.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | z += dz; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `origin_reference` [INFO] [stdout] --> common/src/renderer/utils.rs:10:43 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn draw_grid(renderer: &mut Renderer, origin_reference: Vector3, cell_size: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin_reference` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> common/src/renderer/mod.rs:89:36 [INFO] [stdout] | [INFO] [stdout] 89 | fn perspective_division(&self, mut pos: &mut Vector4) { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift32` is never used [INFO] [stdout] --> common/src/image/bmp.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn shift32(value: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_channels` is never used [INFO] [stdout] --> common/src/image/bmp.rs:130:4 [INFO] [stdout] | [INFO] [stdout] 130 | fn shift_channels( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `near`, `far`, and `view` are never read [INFO] [stdout] --> common/src/renderer/camera.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 6 | near: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | far: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | pub proj: Matrix4, [INFO] [stdout] 9 | view: Matrix4, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/buffer2d/text.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | let mut glyphs = Vec::with_capacity(CHARS_COUNT as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `CHARS_COUNT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/buffer2d/text.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | return dest_y - offset.1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return dest_y - offset.1; [INFO] [stdout] 105 + dest_y - offset.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> common/src/buffer2d/text.rs:89:21 [INFO] [stdout] | [INFO] [stdout] 89 | dest_y = dest_y - scroll_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dest_y -= scroll_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> common/src/buffer2d/text.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | for c in s.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in s.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 227 - return None; [INFO] [stdout] 227 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | self.sorted_indices.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 235 - self.sorted_indices.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] 235 + self.sorted_indices.sort_by_key(|a| a.1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | (z1 - z0) as f32 / (x1 - x0) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `((z1 - z0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:131:25 [INFO] [stdout] | [INFO] [stdout] 131 | let index = calculate_index(offset.0, y, self.width) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `calculate_index(offset.0, y, self.width)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:142:14 [INFO] [stdout] | [INFO] [stdout] 142 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `buffer.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:142:35 [INFO] [stdout] | [INFO] [stdout] 142 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `buffer.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:150:14 [INFO] [stdout] | [INFO] [stdout] 150 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `buffer.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:150:35 [INFO] [stdout] | [INFO] [stdout] 150 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `buffer.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/console.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | (self.current_width as f32 + (700.0 * dt * sign)).clamp(0.0, self.width as f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.current_width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> common/src/console.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | if self.input_string.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.input_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> common/src/image/bmp.rs:70:16 [INFO] [stdout] | [INFO] [stdout] 70 | || !((header.width & (header.width - 1)) == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((header.width & (header.width - 1)) != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> common/src/image/bmp.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | || !((header.height & (header.height - 1)) == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((header.height & (header.height - 1)) != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> common/src/image/bmp.rs:142:16 [INFO] [stdout] | [INFO] [stdout] 142 | array[0] = (shifted >> 0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider reducing it to: `shifted` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `z` is assigned to, but never used [INFO] [stdout] --> common/src/buffer2d/mod.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut z = z0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_z` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `z` is never read [INFO] [stdout] --> common/src/buffer2d/mod.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | z += dz; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Input` [INFO] [stdout] --> common/src/platform/input.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / pub const fn new() -> Self { [INFO] [stdout] 198 | | Self { [INFO] [stdout] 199 | | keys: [false; 256], [INFO] [stdout] 200 | | keys_previous: [false; 256], [INFO] [stdout] ... | [INFO] [stdout] 209 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 196 + impl Default for Input { [INFO] [stdout] 197 + fn default() -> Self { [INFO] [stdout] 198 + Self::new() [INFO] [stdout] 199 + } [INFO] [stdout] 200 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/renderer/clipping.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | return mask; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return mask; [INFO] [stdout] 38 + mask [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/renderer/clipping.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | return Some((p0, p1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return Some((p0, p1)); [INFO] [stdout] 106 + Some((p0, p1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/renderer/clipping.rs:162:31 [INFO] [stdout] | [INFO] [stdout] 162 | .push((vertex_storage.vertices.len() - 1) as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((vertex_storage.vertices.len() - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/renderer/mod.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | pos.x = pos.x * self.viewport.x as f32 + self.viewport.z; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.viewport.x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/renderer/mod.rs:98:26 [INFO] [stdout] | [INFO] [stdout] 98 | pos.y = -pos.y * self.viewport.y as f32 + self.viewport.w; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.viewport.y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> common/src/renderer/mod.rs:137:26 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn draw_triangle<'t, T: B2DT>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 142 | texture: Option<&'t B2D>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 137 ~ pub fn draw_triangle( [INFO] [stdout] 138 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 141 | v2w: &Vertex, [INFO] [stdout] 142 ~ texture: Option<&B2D>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `origin_reference` [INFO] [stdout] --> common/src/renderer/utils.rs:10:43 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn draw_grid(renderer: &mut Renderer, origin_reference: Vector3, cell_size: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin_reference` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> common/src/renderer/mod.rs:174:27 [INFO] [stdout] | [INFO] [stdout] 174 | fn rasterize_triangle<'t, T: B2DT>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 179 | texture: Option<&'t B2D>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 174 ~ fn rasterize_triangle( [INFO] [stdout] 175 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 178 | v2: Vertex, [INFO] [stdout] 179 ~ texture: Option<&B2D>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> common/src/renderer/mod.rs:89:36 [INFO] [stdout] | [INFO] [stdout] 89 | fn perspective_division(&self, mut pos: &mut Vector4) { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[Vector4; 3]` which implements the `Copy` trait [INFO] [stdout] --> common/src/renderer/mod.rs:183:30 [INFO] [stdout] | [INFO] [stdout] 183 | let mut pos_screen = pos_viewport.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `pos_viewport` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift32` is never used [INFO] [stdout] --> common/src/image/bmp.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn shift32(value: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_channels` is never used [INFO] [stdout] --> common/src/image/bmp.rs:130:4 [INFO] [stdout] | [INFO] [stdout] 130 | fn shift_channels( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `near`, `far`, and `view` are never read [INFO] [stdout] --> common/src/renderer/camera.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 6 | near: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | far: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | pub proj: Matrix4, [INFO] [stdout] 9 | view: Matrix4, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> common/src/renderer/mod.rs:252:38 [INFO] [stdout] | [INFO] [stdout] 252 | ... Some(ref texture) => { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 252 - Some(ref texture) => { [INFO] [stdout] 252 + Some(texture) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/buffer2d/text.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | let mut glyphs = Vec::with_capacity(CHARS_COUNT as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `CHARS_COUNT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/buffer2d/text.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | return dest_y - offset.1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return dest_y - offset.1; [INFO] [stdout] 105 + dest_y - offset.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> common/src/buffer2d/text.rs:89:21 [INFO] [stdout] | [INFO] [stdout] 89 | dest_y = dest_y - scroll_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dest_y -= scroll_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> common/src/buffer2d/text.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | for c in s.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in s.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> common/src/utils.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | .try_into() [INFO] [stdout] | ______________^ [INFO] [stdout] 39 | | .expect("slice with incorrect length"), [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: converting `&[u8]` to `Vec` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 38 - .try_into() [INFO] [stdout] 39 - .expect("slice with incorrect length"), [INFO] [stdout] 38 + .into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> common/src/utils.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | .try_into() [INFO] [stdout] | ______________^ [INFO] [stdout] 49 | | .expect("slice with incorrect length"), [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: converting `&[u8]` to `Vec` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 48 - .try_into() [INFO] [stdout] 49 - .expect("slice with incorrect length"), [INFO] [stdout] 48 + .into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> common/src/buffer2d/mod.rs:42:20 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn as_b2ds(&mut self) -> B2DS { [INFO] [stdout] | ^^^^^^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 42 | pub fn as_b2ds(&mut self) -> B2DS<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 227 - return None; [INFO] [stdout] 227 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> common/src/buffer2d/virtual_window.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | self.sorted_indices.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 235 - self.sorted_indices.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] 235 + self.sorted_indices.sort_by_key(|a| a.1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | (z1 - z0) as f32 / (x1 - x0) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `((z1 - z0))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:131:25 [INFO] [stdout] | [INFO] [stdout] 131 | let index = calculate_index(offset.0, y, self.width) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `calculate_index(offset.0, y, self.width)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:142:14 [INFO] [stdout] | [INFO] [stdout] 142 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `buffer.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:142:35 [INFO] [stdout] | [INFO] [stdout] 142 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `buffer.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:150:14 [INFO] [stdout] | [INFO] [stdout] 150 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `buffer.width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> common/src/buffer2d/mod.rs:150:35 [INFO] [stdout] | [INFO] [stdout] 150 | (buffer.width as i32, buffer.height as i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `buffer.height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/console.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | (self.current_width as f32 + (700.0 * dt * sign)).clamp(0.0, self.width as f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.current_width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> common/src/console.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | if self.input_string.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.input_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> common/src/image/bmp.rs:70:16 [INFO] [stdout] | [INFO] [stdout] 70 | || !((header.width & (header.width - 1)) == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((header.width & (header.width - 1)) != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> common/src/image/bmp.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | || !((header.height & (header.height - 1)) == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((header.height & (header.height - 1)) != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> common/src/image/bmp.rs:142:16 [INFO] [stdout] | [INFO] [stdout] 142 | array[0] = (shifted >> 0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider reducing it to: `shifted` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Input` [INFO] [stdout] --> common/src/platform/input.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / pub const fn new() -> Self { [INFO] [stdout] 198 | | Self { [INFO] [stdout] 199 | | keys: [false; 256], [INFO] [stdout] 200 | | keys_previous: [false; 256], [INFO] [stdout] ... | [INFO] [stdout] 209 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 196 + impl Default for Input { [INFO] [stdout] 197 + fn default() -> Self { [INFO] [stdout] 198 + Self::new() [INFO] [stdout] 199 + } [INFO] [stdout] 200 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking quill v0.0.1 (/opt/rustwide/workdir/quill) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/renderer/clipping.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | return mask; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return mask; [INFO] [stdout] 38 + mask [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking almanacx v0.0.1 (/opt/rustwide/workdir/almanacx) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/renderer/clipping.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | return Some((p0, p1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return Some((p0, p1)); [INFO] [stdout] 106 + Some((p0, p1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> common/src/renderer/clipping.rs:162:31 [INFO] [stdout] | [INFO] [stdout] 162 | .push((vertex_storage.vertices.len() - 1) as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((vertex_storage.vertices.len() - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/renderer/mod.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | pos.x = pos.x * self.viewport.x as f32 + self.viewport.z; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.viewport.x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> common/src/renderer/mod.rs:98:26 [INFO] [stdout] | [INFO] [stdout] 98 | pos.y = -pos.y * self.viewport.y as f32 + self.viewport.w; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.viewport.y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> common/src/renderer/mod.rs:137:26 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn draw_triangle<'t, T: B2DT>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 142 | texture: Option<&'t B2D>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 137 ~ pub fn draw_triangle( [INFO] [stdout] 138 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 141 | v2w: &Vertex, [INFO] [stdout] 142 ~ texture: Option<&B2D>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 't [INFO] [stdout] --> common/src/renderer/mod.rs:174:27 [INFO] [stdout] | [INFO] [stdout] 174 | fn rasterize_triangle<'t, T: B2DT>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 179 | texture: Option<&'t B2D>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 174 ~ fn rasterize_triangle( [INFO] [stdout] 175 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 178 | v2: Vertex, [INFO] [stdout] 179 ~ texture: Option<&B2D>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[Vector4; 3]` which implements the `Copy` trait [INFO] [stdout] --> common/src/renderer/mod.rs:183:30 [INFO] [stdout] | [INFO] [stdout] 183 | let mut pos_screen = pos_viewport.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `pos_viewport` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> almanacx/src/game/world.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | triangles: triangles, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `triangles` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> common/src/renderer/mod.rs:252:38 [INFO] [stdout] | [INFO] [stdout] 252 | ... Some(ref texture) => { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 252 - Some(ref texture) => { [INFO] [stdout] 252 + Some(texture) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_a` [INFO] [stdout] --> almanacx/src/game/mod.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let test_a = &mut self.stack.windows[VW_TEST_A]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> common/src/utils.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | .try_into() [INFO] [stdout] | ______________^ [INFO] [stdout] 39 | | .expect("slice with incorrect length"), [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: converting `&[u8]` to `Vec` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 38 - .try_into() [INFO] [stdout] 39 - .expect("slice with incorrect length"), [INFO] [stdout] 38 + .into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> common/src/utils.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | .try_into() [INFO] [stdout] | ______________^ [INFO] [stdout] 49 | | .expect("slice with incorrect length"), [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: converting `&[u8]` to `Vec` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 48 - .try_into() [INFO] [stdout] 49 - .expect("slice with incorrect length"), [INFO] [stdout] 48 + .into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Automap` is never constructed [INFO] [stdout] --> almanacx/src/game/mod.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum GameState { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 26 | Action, [INFO] [stdout] 27 | Automap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `font` and `time_start` are never read [INFO] [stdout] --> almanacx/src/game/mod.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Game { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | pub font: Font, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub time_start: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAP_SCALE` is never used [INFO] [stdout] --> almanacx/src/game/world.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const MAP_SCALE: f32 = 0.01; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `VecDeque` and `vec_deque` [INFO] [stdout] --> quill/src/main.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | collections::{vec_deque, VecDeque}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> common/src/buffer2d/mod.rs:42:20 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn as_b2ds(&mut self) -> B2DS { [INFO] [stdout] | ^^^^^^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 42 | pub fn as_b2ds(&mut self) -> B2DS<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> almanacx/src/game/mod.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 - return true; [INFO] [stdout] 171 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> almanacx/src/main.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | ((REFERENCE_WIDTH - PRIMARY_WIDTH) / 2) as i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(((REFERENCE_WIDTH - PRIMARY_WIDTH) / 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> almanacx/src/main.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | ((REFERENCE_HEIGHT - PRIMARY_HEIGHT) / 2) as i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(((REFERENCE_HEIGHT - PRIMARY_HEIGHT) / 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `VecDeque` and `vec_deque` [INFO] [stdout] --> quill/src/main.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | collections::{vec_deque, VecDeque}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> almanacx/src/game/world.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | triangles: triangles, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `triangles` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> quill/src/main.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dt` [INFO] [stdout] --> quill/src/main.rs:23:44 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> quill/src/main.rs:23:53 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> quill/src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | let mut last_frame = Instant::now(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> quill/src/main.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let mut last_frame = Instant::now(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Quill` is never constructed [INFO] [stdout] --> quill/src/main.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct Quill { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `View` is never constructed [INFO] [stdout] --> quill/src/view.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct View {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> quill/src/main.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> quill/src/main.rs:35:36 [INFO] [stdout] | [INFO] [stdout] 35 | let mut color_buffer = vec![5; width * height * 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(width * height)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> quill/src/main.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | let mut color_buffer_clear = vec![5; width * height * 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(width * height)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dt` [INFO] [stdout] --> quill/src/main.rs:23:44 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> quill/src/main.rs:23:53 [INFO] [stdout] | [INFO] [stdout] 23 | fn main_loop(&mut self, input: &Input, dt: f32, buffer: Option) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> quill/src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | let mut last_frame = Instant::now(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> quill/src/main.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let mut last_frame = Instant::now(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Quill` is never constructed [INFO] [stdout] --> quill/src/main.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct Quill { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `View` is never constructed [INFO] [stdout] --> quill/src/view.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct View {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> quill/src/main.rs:35:36 [INFO] [stdout] | [INFO] [stdout] 35 | let mut color_buffer = vec![5; width * height * 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(width * height)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> quill/src/main.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | let mut color_buffer_clear = vec![5; width * height * 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(width * height)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_a` [INFO] [stdout] --> almanacx/src/game/mod.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let test_a = &mut self.stack.windows[VW_TEST_A]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Automap` is never constructed [INFO] [stdout] --> almanacx/src/game/mod.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum GameState { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 26 | Action, [INFO] [stdout] 27 | Automap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `font` and `time_start` are never read [INFO] [stdout] --> almanacx/src/game/mod.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Game { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | pub font: Font, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub time_start: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAP_SCALE` is never used [INFO] [stdout] --> almanacx/src/game/world.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const MAP_SCALE: f32 = 0.01; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> almanacx/src/game/mod.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 - return true; [INFO] [stdout] 171 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> almanacx/src/main.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | ((REFERENCE_WIDTH - PRIMARY_WIDTH) / 2) as i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(((REFERENCE_WIDTH - PRIMARY_WIDTH) / 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> almanacx/src/main.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | ((REFERENCE_HEIGHT - PRIMARY_HEIGHT) / 2) as i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(((REFERENCE_HEIGHT - PRIMARY_HEIGHT) / 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 9.43s [INFO] running `Command { std: "docker" "inspect" "206ecbd9569fed44d6f74c8574ae3f439c30b20ec30114484a4b567b54595939", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "206ecbd9569fed44d6f74c8574ae3f439c30b20ec30114484a4b567b54595939", kill_on_drop: false }` [INFO] [stdout] 206ecbd9569fed44d6f74c8574ae3f439c30b20ec30114484a4b567b54595939