[INFO] cloning repository https://github.com/Nimrodium/RustTerminalRenderer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Nimrodium/RustTerminalRenderer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNimrodium%2FRustTerminalRenderer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNimrodium%2FRustTerminalRenderer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7ae862d2fd2450b86916d2b34f10d998d271a9cc [INFO] linting Nimrodium/RustTerminalRenderer against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNimrodium%2FRustTerminalRenderer" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Nimrodium/RustTerminalRenderer [INFO] finished tweaking git repo https://github.com/Nimrodium/RustTerminalRenderer [INFO] tweaked toml for git repo https://github.com/Nimrodium/RustTerminalRenderer written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Nimrodium/RustTerminalRenderer 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/Nimrodium/RustTerminalRenderer 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 7d5aae3343a326bbff9db18d95e9e144428a180aed23d1106047e41da11ebba7 [INFO] running `Command { std: "docker" "start" "-a" "7d5aae3343a326bbff9db18d95e9e144428a180aed23d1106047e41da11ebba7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d5aae3343a326bbff9db18d95e9e144428a180aed23d1106047e41da11ebba7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d5aae3343a326bbff9db18d95e9e144428a180aed23d1106047e41da11ebba7", kill_on_drop: false }` [INFO] [stdout] 7d5aae3343a326bbff9db18d95e9e144428a180aed23d1106047e41da11ebba7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 418f87fbf867347dd6ff71fa4d784f8eb7f2436510ba9e3d4ea3a9aa9b47c343 [INFO] running `Command { std: "docker" "start" "-a" "418f87fbf867347dd6ff71fa4d784f8eb7f2436510ba9e3d4ea3a9aa9b47c343", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.162 [INFO] [stderr] Compiling rustix v0.38.40 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking signal-hook v0.3.17 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking rs_cli_renderer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: type `x_pos` should have an upper camel case name [INFO] [stdout] --> src/sprite.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type x_pos = i16; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `XPos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `y_pos` should have an upper camel case name [INFO] [stdout] --> src/sprite.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub type y_pos = i16; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `YPos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / ///string to represent each pixel by. [INFO] [stdout] 15 | | [INFO] [stdout] | |_^ [INFO] [stdout] 16 | ///FrameBuffer type holds worldspace before commit [INFO] [stdout] 17 | pub type SpriteVector = Vec; [INFO] [stdout] | --------------------- the comment documents this type alias [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 15 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/stack.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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] --> src/stack.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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: empty line after doc comment [INFO] [stdout] --> src/stack.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / ///returns initialized layerstack [INFO] [stdout] 151 | | [INFO] [stdout] | |_^ [INFO] [stdout] 152 | fn new(width: u16, height: u16, bg_color: Color) -> Self { [INFO] [stdout] | ------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | / ///adds layer data to framebuffer [INFO] [stdout] 169 | | [INFO] [stdout] | |_^ [INFO] [stdout] 170 | fn rasterize(&mut self) { [INFO] [stdout] | ------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / ///foreground becomes a mutable reference to the layer with id 2 [INFO] [stdout] 201 | | [INFO] [stdout] | |_^ [INFO] [stdout] 202 | fn fetch_mut(&mut self, id: &LayerID) -> &mut Layer { [INFO] [stdout] | ------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / /// ``` [INFO] [stdout] 255 | | [INFO] [stdout] | |_^ [INFO] [stdout] 256 | pub fn add(&mut self, layer_id: LayerID, pos: u16) -> LayerID { [INFO] [stdout] | ---------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:292:5 [INFO] [stdout] | [INFO] [stdout] 292 | / /// Moves layer with ID 1 to position 0. [INFO] [stdout] 293 | | [INFO] [stdout] | |_^ [INFO] [stdout] 294 | pub fn move_layer(&mut self, layer_id: LayerID, new_pos: u16) { [INFO] [stdout] | ----------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:381:5 [INFO] [stdout] | [INFO] [stdout] 381 | / ///writes the `dino` Sprite to (10,15) on layer 1. [INFO] [stdout] 382 | | [INFO] [stdout] | |_^ [INFO] [stdout] 383 | pub fn write_sprite(&mut self, x: x_pos, y: y_pos, sprite: &Sprite, layer_id: LayerID) -> () { [INFO] [stdout] | ------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/stack.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | x: x, [INFO] [stdout] | ^^^^ help: replace it with: `x` [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] --> src/stack.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | y: y, [INFO] [stdout] | ^^^^ help: replace it with: `y` [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] --> src/stack.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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: empty line after doc comment [INFO] [stdout] --> src/stack.rs:464:5 [INFO] [stdout] | [INFO] [stdout] 464 | / ///sets framerate to 60fps (16ms) [INFO] [stdout] 465 | | [INFO] [stdout] | |_^ [INFO] [stdout] 466 | pub fn set_framerate(&mut self, new_framerate: u64) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | / /// ``` [INFO] [stdout] 477 | | [INFO] [stdout] | |_^ [INFO] [stdout] 478 | pub fn render_update(&mut self) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | use std::{thread, time}; [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: `execute` and `terminal` [INFO] [stdout] --> src/main.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use crossterm::{execute, style::Color, terminal}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/main.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 23 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `toggle` [INFO] [stdout] --> src/stack.rs:526:34 [INFO] [stdout] | [INFO] [stdout] 526 | pub fn debug_mode(&mut self, toggle: bool) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_toggle` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `height`, `width`, `center`, and `tag` are never read [INFO] [stdout] --> src/sprite.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Sprite { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | pub height: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | /// width of sprite in local spritespace [INFO] [stdout] 36 | pub width: u16, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 37 | /// calculated center of sprite as a tuple (x,y) [INFO] [stdout] 38 | pub center: (u16, u16), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 39 | ///tag is for grouping together sprites [INFO] [stdout] 40 | pub tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tag` is never read [INFO] [stdout] --> src/sprite.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Metadata { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 53 | pub tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEBUG` is never used [INFO] [stdout] --> src/stack.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static DEBUG: bool = false; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `debug` is never read [INFO] [stdout] --> src/stack.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Renderer { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 57 | pub debug: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `move_layer`, `remove`, `set_visibility`, and `direct_write` are never used [INFO] [stdout] --> src/stack.rs:294:12 [INFO] [stdout] | [INFO] [stdout] 149 | impl Layerstack { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn move_layer(&mut self, layer_id: LayerID, new_pos: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn remove(&mut self, layer_id: LayerID) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn set_visibility(&mut self, layer_id: LayerID, isvisible: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn direct_write(&mut self, x: x_pos, y: y_pos, color: Color, layer_id: LayerID) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Down` is never constructed [INFO] [stdout] --> src/stack.rs:415:5 [INFO] [stdout] | [INFO] [stdout] 413 | enum ShiftDirection { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 414 | Up, [INFO] [stdout] 415 | Down, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug_mode` is never used [INFO] [stdout] --> src/stack.rs:526:12 [INFO] [stdout] | [INFO] [stdout] 418 | impl Renderer { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 526 | pub fn debug_mode(&mut self, toggle: bool) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/stack.rs:118:16 [INFO] [stdout] | [INFO] [stdout] 118 | if !(x_pixel < self.width as i16) && (y_pixel < self.height as i16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(x_pixel >= self.width as i16)` [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: doc list item without indentation [INFO] [stdout] --> src/stack.rs:242:8 [INFO] [stdout] | [INFO] [stdout] 242 | /// Removes the specified layer from the layerstack. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 242 | /// Removes the specified layer from the layerstack. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/stack.rs:383:91 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn write_sprite(&mut self, x: x_pos, y: y_pos, sprite: &Sprite, layer_id: LayerID) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/stack.rs:385:76 [INFO] [stdout] | [INFO] [stdout] 385 | let worldspace_spritevector = self.framebuffer.to_worldspace(x, y, &sprite); [INFO] [stdout] | ^^^^^^^ help: change this to: `sprite` [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] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/stack.rs:501:78 [INFO] [stdout] | [INFO] [stdout] 501 | for (_, pixel) in (self.layerstack.framebuffer.buffer).clone().iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 501 - for (_, pixel) in (self.layerstack.framebuffer.buffer).clone().iter().enumerate() { [INFO] [stdout] 501 + for pixel in (self.layerstack.framebuffer.buffer).clone().iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `x_pos` should have an upper camel case name [INFO] [stdout] --> src/sprite.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type x_pos = i16; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `XPos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `y_pos` should have an upper camel case name [INFO] [stdout] --> src/sprite.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub type y_pos = i16; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `YPos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / ///string to represent each pixel by. [INFO] [stdout] 15 | | [INFO] [stdout] | |_^ [INFO] [stdout] 16 | ///FrameBuffer type holds worldspace before commit [INFO] [stdout] 17 | pub type SpriteVector = Vec; [INFO] [stdout] | --------------------- the comment documents this type alias [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 15 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/stack.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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] --> src/stack.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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: empty line after doc comment [INFO] [stdout] --> src/stack.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / ///returns initialized layerstack [INFO] [stdout] 151 | | [INFO] [stdout] | |_^ [INFO] [stdout] 152 | fn new(width: u16, height: u16, bg_color: Color) -> Self { [INFO] [stdout] | ------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | / ///adds layer data to framebuffer [INFO] [stdout] 169 | | [INFO] [stdout] | |_^ [INFO] [stdout] 170 | fn rasterize(&mut self) { [INFO] [stdout] | ------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / ///foreground becomes a mutable reference to the layer with id 2 [INFO] [stdout] 201 | | [INFO] [stdout] | |_^ [INFO] [stdout] 202 | fn fetch_mut(&mut self, id: &LayerID) -> &mut Layer { [INFO] [stdout] | ------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / /// ``` [INFO] [stdout] 255 | | [INFO] [stdout] | |_^ [INFO] [stdout] 256 | pub fn add(&mut self, layer_id: LayerID, pos: u16) -> LayerID { [INFO] [stdout] | ---------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:292:5 [INFO] [stdout] | [INFO] [stdout] 292 | / /// Moves layer with ID 1 to position 0. [INFO] [stdout] 293 | | [INFO] [stdout] | |_^ [INFO] [stdout] 294 | pub fn move_layer(&mut self, layer_id: LayerID, new_pos: u16) { [INFO] [stdout] | ----------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:381:5 [INFO] [stdout] | [INFO] [stdout] 381 | / ///writes the `dino` Sprite to (10,15) on layer 1. [INFO] [stdout] 382 | | [INFO] [stdout] | |_^ [INFO] [stdout] 383 | pub fn write_sprite(&mut self, x: x_pos, y: y_pos, sprite: &Sprite, layer_id: LayerID) -> () { [INFO] [stdout] | ------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/stack.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | x: x, [INFO] [stdout] | ^^^^ help: replace it with: `x` [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] --> src/stack.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | y: y, [INFO] [stdout] | ^^^^ help: replace it with: `y` [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] --> src/stack.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [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: empty line after doc comment [INFO] [stdout] --> src/stack.rs:464:5 [INFO] [stdout] | [INFO] [stdout] 464 | / ///sets framerate to 60fps (16ms) [INFO] [stdout] 465 | | [INFO] [stdout] | |_^ [INFO] [stdout] 466 | pub fn set_framerate(&mut self, new_framerate: u64) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/stack.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | / /// ``` [INFO] [stdout] 477 | | [INFO] [stdout] | |_^ [INFO] [stdout] 478 | pub fn render_update(&mut self) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | use std::{thread, time}; [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: `execute` and `terminal` [INFO] [stdout] --> src/main.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use crossterm::{execute, style::Color, terminal}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/main.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 23 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `toggle` [INFO] [stdout] --> src/stack.rs:526:34 [INFO] [stdout] | [INFO] [stdout] 526 | pub fn debug_mode(&mut self, toggle: bool) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_toggle` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `height`, `width`, `center`, and `tag` are never read [INFO] [stdout] --> src/sprite.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Sprite { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | pub height: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | /// width of sprite in local spritespace [INFO] [stdout] 36 | pub width: u16, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 37 | /// calculated center of sprite as a tuple (x,y) [INFO] [stdout] 38 | pub center: (u16, u16), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 39 | ///tag is for grouping together sprites [INFO] [stdout] 40 | pub tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tag` is never read [INFO] [stdout] --> src/sprite.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Metadata { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 53 | pub tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEBUG` is never used [INFO] [stdout] --> src/stack.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static DEBUG: bool = false; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `debug` is never read [INFO] [stdout] --> src/stack.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Renderer { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 57 | pub debug: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `move_layer`, `remove`, `set_visibility`, and `direct_write` are never used [INFO] [stdout] --> src/stack.rs:294:12 [INFO] [stdout] | [INFO] [stdout] 149 | impl Layerstack { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn move_layer(&mut self, layer_id: LayerID, new_pos: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn remove(&mut self, layer_id: LayerID) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn set_visibility(&mut self, layer_id: LayerID, isvisible: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn direct_write(&mut self, x: x_pos, y: y_pos, color: Color, layer_id: LayerID) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Down` is never constructed [INFO] [stdout] --> src/stack.rs:415:5 [INFO] [stdout] | [INFO] [stdout] 413 | enum ShiftDirection { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 414 | Up, [INFO] [stdout] 415 | Down, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug_mode` is never used [INFO] [stdout] --> src/stack.rs:526:12 [INFO] [stdout] | [INFO] [stdout] 418 | impl Renderer { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 526 | pub fn debug_mode(&mut self, toggle: bool) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/stack.rs:118:16 [INFO] [stdout] | [INFO] [stdout] 118 | if !(x_pixel < self.width as i16) && (y_pixel < self.height as i16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(x_pixel >= self.width as i16)` [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: doc list item without indentation [INFO] [stdout] --> src/stack.rs:242:8 [INFO] [stdout] | [INFO] [stdout] 242 | /// Removes the specified layer from the layerstack. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 242 | /// Removes the specified layer from the layerstack. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/stack.rs:383:91 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn write_sprite(&mut self, x: x_pos, y: y_pos, sprite: &Sprite, layer_id: LayerID) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/stack.rs:385:76 [INFO] [stdout] | [INFO] [stdout] 385 | let worldspace_spritevector = self.framebuffer.to_worldspace(x, y, &sprite); [INFO] [stdout] | ^^^^^^^ help: change this to: `sprite` [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] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/stack.rs:501:78 [INFO] [stdout] | [INFO] [stdout] 501 | for (_, pixel) in (self.layerstack.framebuffer.buffer).clone().iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 501 - for (_, pixel) in (self.layerstack.framebuffer.buffer).clone().iter().enumerate() { [INFO] [stdout] 501 + for pixel in (self.layerstack.framebuffer.buffer).clone().iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.39s [INFO] running `Command { std: "docker" "inspect" "418f87fbf867347dd6ff71fa4d784f8eb7f2436510ba9e3d4ea3a9aa9b47c343", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "418f87fbf867347dd6ff71fa4d784f8eb7f2436510ba9e3d4ea3a9aa9b47c343", kill_on_drop: false }` [INFO] [stdout] 418f87fbf867347dd6ff71fa4d784f8eb7f2436510ba9e3d4ea3a9aa9b47c343