[INFO] cloning repository https://github.com/eckshton/snake
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/eckshton/snake" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feckshton%2Fsnake", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feckshton%2Fsnake'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0664a0a2f8fe4c2ca5753692614a7798f46aa409
[INFO] linting eckshton/snake/0664a0a2f8fe4c2ca5753692614a7798f46aa409 against nightly for clippy-nonminimal_bool-denied
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feckshton%2Fsnake" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/eckshton/snake
[INFO] finished tweaking git repo https://github.com/eckshton/snake
[INFO] tweaked toml for git repo https://github.com/eckshton/snake written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/eckshton/snake 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/eckshton/snake 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] Blocking waiting for file lock on package cache
[INFO] [stderr] Blocking waiting for file lock on package cache
[INFO] [stderr] Downloading crates ...
[INFO] [stderr] Downloaded crossfont v0.5.1
[INFO] [stderr] Downloaded exr v1.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3ba34c0f1a318b8bcdadeb3fd9ffbbe9efd754c08ef63b427cacb4924d6d0f81
[INFO] running `Command { std: "docker" "start" "-a" "3ba34c0f1a318b8bcdadeb3fd9ffbbe9efd754c08ef63b427cacb4924d6d0f81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ba34c0f1a318b8bcdadeb3fd9ffbbe9efd754c08ef63b427cacb4924d6d0f81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ba34c0f1a318b8bcdadeb3fd9ffbbe9efd754c08ef63b427cacb4924d6d0f81", kill_on_drop: false }`
[INFO] [stdout] 3ba34c0f1a318b8bcdadeb3fd9ffbbe9efd754c08ef63b427cacb4924d6d0f81
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] aa4b969a3e25b241d31a0613f7cf44a378b7e7bdb6eb2d035f3f6b17ac1aaa13
[INFO] running `Command { std: "docker" "start" "-a" "aa4b969a3e25b241d31a0613f7cf44a378b7e7bdb6eb2d035f3f6b17ac1aaa13", kill_on_drop: false }`
[INFO] [stderr] Compiling syn v2.0.29
[INFO] [stderr] Compiling wayland-sys v0.29.5
[INFO] [stderr] Checking once_cell v1.18.0
[INFO] [stderr] Checking dlib v0.5.2
[INFO] [stderr] Compiling wayland-client v0.29.5
[INFO] [stderr] Checking memchr v2.6.2
[INFO] [stderr] Compiling cc v1.0.83
[INFO] [stderr] Checking bytemuck v1.13.1
[INFO] [stderr] Compiling gl_generator v0.14.0
[INFO] [stderr] Checking nix v0.24.3
[INFO] [stderr] Compiling servo-fontconfig-sys v5.1.0
[INFO] [stderr] Compiling slotmap v1.0.6
[INFO] [stderr] Compiling wayland-protocols v0.29.5
[INFO] [stderr] Checking nix v0.25.1
[INFO] [stderr] Compiling crossfont v0.5.1
[INFO] [stderr] Compiling smithay-client-toolkit v0.16.0
[INFO] [stderr] Checking num_cpus v1.16.0
[INFO] [stderr] Checking foreign-types-shared v0.3.1
[INFO] [stderr] Checking tiny-skia-path v0.7.0
[INFO] [stderr] Checking safe_arch v0.5.2
[INFO] [stderr] Checking rayon-core v1.11.0
[INFO] [stderr] Checking memmap2 v0.5.10
[INFO] [stderr] Compiling futures-core v0.3.28
[INFO] [stderr] Checking arrayvec v0.5.2
[INFO] [stderr] Checking x11-dl v2.21.0
[INFO] [stderr] Checking parking_lot_core v0.9.8
[INFO] [stderr] Checking getrandom v0.2.10
[INFO] [stderr] Checking nom v7.1.3
[INFO] [stderr] Checking mio v0.8.8
[INFO] [stderr] Checking shared_library v0.1.9
[INFO] [stderr] Compiling cmake v0.1.50
[INFO] [stderr] Compiling glutin_egl_sys v0.1.6
[INFO] [stderr] Compiling glutin_glx_sys v0.1.8
[INFO] [stderr] Checking rayon v1.7.0
[INFO] [stderr] Checking parking_lot v0.12.1
[INFO] [stderr] Checking nanorand v0.7.0
[INFO] [stderr] Checking futures-sink v0.3.28
[INFO] [stderr] Checking gimli v0.28.0
[INFO] [stderr] Checking tiny-skia v0.7.0
[INFO] [stderr] Checking osmesa-sys v0.1.2
[INFO] [stderr] Compiling glium v0.32.1
[INFO] [stderr] Checking object v0.32.0
[INFO] [stderr] Checking rustc-demangle v0.1.23
[INFO] [stderr] Checking wayland-commons v0.29.5
[INFO] [stderr] Checking qoi v0.4.1
[INFO] [stderr] Compiling freetype-sys v0.13.1
[INFO] [stderr] Compiling expat-sys v2.1.6
[INFO] [stderr] Compiling backtrace v0.3.69
[INFO] [stderr] Checking freetype-rs v0.26.0
[INFO] [stderr] Checking servo-fontconfig v0.5.1
[INFO] [stderr] Checking xcursor v0.3.4
[INFO] [stderr] Checking wayland-cursor v0.29.5
[INFO] [stderr] Checking wayland-egl v0.29.5
[INFO] [stderr] Checking jpeg-decoder v0.3.0
[INFO] [stderr] Compiling thiserror-impl v1.0.47
[INFO] [stderr] Compiling foreign-types-macros v0.2.3
[INFO] [stderr] Compiling pin-project-internal v1.1.3
[INFO] [stderr] Checking addr2line v0.21.0
[INFO] [stderr] Checking foreign-types v0.5.0
[INFO] [stderr] Checking tiff v0.9.0
[INFO] [stderr] Checking thiserror v1.0.47
[INFO] [stderr] Checking calloop v0.10.6
[INFO] [stderr] Checking pin-project v1.1.3
[INFO] [stderr] Checking flume v0.10.14
[INFO] [stderr] Checking exr v1.7.0
[INFO] [stderr] Checking image v0.24.7
[INFO] [stderr] Checking sctk-adwaita v0.4.3
[INFO] [stderr] Checking winit v0.27.5
[INFO] [stderr] Checking glutin v0.29.1
[INFO] [stderr] Checking snakebot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:58:23
[INFO] [stdout] |
[INFO] [stdout] 58 | pub fn new_colbuf(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 58 - pub fn new_colbuf(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] 58 + pub fn new_colbuf(&self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:64:27
[INFO] [stdout] |
[INFO] [stdout] 64 | pub fn new_colbuf_dyn(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 64 - pub fn new_colbuf_dyn(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] 64 + pub fn new_colbuf_dyn(&self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:70:17
[INFO] [stdout] |
[INFO] [stdout] 70 | pub fn draw(self: &Self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 70 - pub fn draw(self: &Self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] 70 + pub fn draw(&self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/game.rs:116:18
[INFO] [stdout] |
[INFO] [stdout] 116 | fn eat_apple(self: &mut Self) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 116 - fn eat_apple(self: &mut Self) {
[INFO] [stdout] 116 + fn eat_apple(&mut self) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/game.rs:140:17
[INFO] [stdout] |
[INFO] [stdout] 140 | pub fn step(self: &mut Self, i: Option
) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 140 - pub fn step(self: &mut Self, i: Option) {
[INFO] [stdout] 140 + pub fn step(&mut self, i: Option) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:58:23
[INFO] [stdout] |
[INFO] [stdout] 58 | pub fn new_colbuf(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 58 - pub fn new_colbuf(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] 58 + pub fn new_colbuf(&self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:64:27
[INFO] [stdout] |
[INFO] [stdout] 64 | pub fn new_colbuf_dyn(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 64 - pub fn new_colbuf_dyn(self: &Self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] 64 + pub fn new_colbuf_dyn(&self, v: &[ColVert], i: &[u16]) -> ColBuffer {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/GLium.rs:70:17
[INFO] [stdout] |
[INFO] [stdout] 70 | pub fn draw(self: &Self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 70 - pub fn draw(self: &Self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] 70 + pub fn draw(&self, colbufs: &[&ColBuffer]) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/game.rs:116:18
[INFO] [stdout] |
[INFO] [stdout] 116 | fn eat_apple(self: &mut Self) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 116 - fn eat_apple(self: &mut Self) {
[INFO] [stdout] 116 + fn eat_apple(&mut self) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary
[INFO] [stdout] --> src/game.rs:140:17
[INFO] [stdout] |
[INFO] [stdout] 140 | pub fn step(self: &mut Self, i: Option) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type
[INFO] [stdout] help: remove the type
[INFO] [stdout] |
[INFO] [stdout] 140 - pub fn step(self: &mut Self, i: Option) {
[INFO] [stdout] 140 + pub fn step(&mut self, i: Option) {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: struct `Coords` is never constructed
[INFO] [stdout] --> src/main.rs:14:8
[INFO] [stdout] |
[INFO] [stdout] 14 | struct Coords {
[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 `scrn` is never read
[INFO] [stdout] --> src/main.rs:29:5
[INFO] [stdout] |
[INFO] [stdout] 27 | struct State {
[INFO] [stdout] | ----- field in this struct
[INFO] [stdout] 28 | start_pos: StartPos,
[INFO] [stdout] 29 | scrn: Scrn,
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: struct `TexVert` is never constructed
[INFO] [stdout] --> src/GLium.rs:16:12
[INFO] [stdout] |
[INFO] [stdout] 16 | pub struct TexVert {
[INFO] [stdout] | ^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field `tp` is never read
[INFO] [stdout] --> src/GLium.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 38 | pub struct GL {
[INFO] [stdout] | -- field in this struct
[INFO] [stdout] 39 | pub d: Display,
[INFO] [stdout] 40 | tp: Program,
[INFO] [stdout] | ^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field `scrn` is never read
[INFO] [stdout] --> src/game.rs:50:9
[INFO] [stdout] |
[INFO] [stdout] 46 | pub struct Game {
[INFO] [stdout] | ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 | pub scrn: Scrn,
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: struct `Coords` is never constructed
[INFO] [stdout] --> src/main.rs:14:8
[INFO] [stdout] |
[INFO] [stdout] 14 | struct Coords {
[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 `scrn` is never read
[INFO] [stdout] --> src/main.rs:29:5
[INFO] [stdout] |
[INFO] [stdout] 27 | struct State {
[INFO] [stdout] | ----- field in this struct
[INFO] [stdout] 28 | start_pos: StartPos,
[INFO] [stdout] 29 | scrn: Scrn,
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: struct `TexVert` is never constructed
[INFO] [stdout] --> src/GLium.rs:16:12
[INFO] [stdout] |
[INFO] [stdout] 16 | pub struct TexVert {
[INFO] [stdout] | ^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field `tp` is never read
[INFO] [stdout] --> src/GLium.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 38 | pub struct GL {
[INFO] [stdout] | -- field in this struct
[INFO] [stdout] 39 | pub d: Display,
[INFO] [stdout] 40 | tp: Program,
[INFO] [stdout] | ^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field `scrn` is never read
[INFO] [stdout] --> src/game.rs:50:9
[INFO] [stdout] |
[INFO] [stdout] 46 | pub struct Game {
[INFO] [stdout] | ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 | pub scrn: Scrn,
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] error: approximate value of `f{32, 64}::consts::PI` found
[INFO] [stdout] --> src/game.rs:60:15
[INFO] [stdout] |
[INFO] [stdout] 60 | .powf(3.141592653589793);
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: consider using the constant directly
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant
[INFO] [stdout] = note: `#[deny(clippy::approx_constant)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this `if` statement can be collapsed
[INFO] [stdout] --> src/game.rs:122:13
[INFO] [stdout] |
[INFO] [stdout] 122 | / if ax != self.a.x && ay != self.a.y {
[INFO] [stdout] 123 | | if self.b.b[ax as usize][ay as usize] == BMember::Empty {
[INFO] [stdout] 124 | | self.a.x = ax;
[INFO] [stdout] 125 | | self.a.y = ay;
[INFO] [stdout] ... |
[INFO] [stdout] 128 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default
[INFO] [stdout] help: collapse nested if block
[INFO] [stdout] |
[INFO] [stdout] 122 ~ if ax != self.a.x && ay != self.a.y
[INFO] [stdout] 123 ~ && self.b.b[ax as usize][ay as usize] == BMember::Empty {
[INFO] [stdout] 124 | self.a.x = ax;
[INFO] [stdout] 125 | self.a.y = ay;
[INFO] [stdout] 126 | return
[INFO] [stdout] 127 ~ }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/game.rs:143:9
[INFO] [stdout] |
[INFO] [stdout] 143 | / match i {
[INFO] [stdout] 144 | | Some(dir) => {
[INFO] [stdout] 145 | | self.s.d = dir;
[INFO] [stdout] 146 | | self.s.tailinst.push(Instruction { dir, x: self.s.x, y: self.s.y });
[INFO] [stdout] 147 | | },
[INFO] [stdout] 148 | | None => ()
[INFO] [stdout] 149 | | }
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 143 ~ if let Some(dir) = i {
[INFO] [stdout] 144 + self.s.d = dir;
[INFO] [stdout] 145 + self.s.tailinst.push(Instruction { dir, x: self.s.x, y: self.s.y });
[INFO] [stdout] 146 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if`
[INFO] [stdout] --> src/game.rs:159:9
[INFO] [stdout] |
[INFO] [stdout] 159 | / match self.b.b[self.s.x as usize][self.s.y as usize] {
[INFO] [stdout] 160 | | BMember::Snake => self.lost = true,
[INFO] [stdout] 161 | | _ => ()
[INFO] [stdout] 162 | | }
[INFO] [stdout] | |_________^ help: try: `if self.b.b[self.s.x as usize][self.s.y as usize] == BMember::Snake { self.lost = true }`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this `if` statement can be collapsed
[INFO] [stdout] --> src/game.rs:178:9
[INFO] [stdout] |
[INFO] [stdout] 178 | / if self.s.tailinst.len() != 0 {
[INFO] [stdout] 179 | | if self.s.tailinst[0].x == self.s.tx && self.s.tailinst[0].y == self.s.ty {
[INFO] [stdout] 180 | | self.s.td = self.s.tailinst[0].dir;
[INFO] [stdout] 181 | | self.s.tailinst.remove(0);
[INFO] [stdout] 182 | | }
[INFO] [stdout] 183 | | }
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stdout] help: collapse nested if block
[INFO] [stdout] |
[INFO] [stdout] 178 ~ if self.s.tailinst.len() != 0
[INFO] [stdout] 179 ~ && self.s.tailinst[0].x == self.s.tx && self.s.tailinst[0].y == self.s.ty {
[INFO] [stdout] 180 | self.s.td = self.s.tailinst[0].dir;
[INFO] [stdout] 181 | self.s.tailinst.remove(0);
[INFO] [stdout] 182 ~ }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: length comparison to zero
[INFO] [stdout] --> src/game.rs:178:12
[INFO] [stdout] |
[INFO] [stdout] 178 | if self.s.tailinst.len() != 0 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.s.tailinst.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: unneeded `return` statement
[INFO] [stdout] --> src/main.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 40 | / return (
[INFO] [stdout] 41 | | -1.0 + x as f32 * (2.0 / b.w as f32),
[INFO] [stdout] 42 | | -1.0 + y as f32 * (2.0 / b.h as f32)
[INFO] [stdout] 43 | | )
[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] 40 ~ (
[INFO] [stdout] 41 + -1.0 + x as f32 * (2.0 / b.w as f32),
[INFO] [stdout] 42 + -1.0 + y as f32 * (2.0 / b.h as f32)
[INFO] [stdout] 43 + )
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] error: approximate value of `f{32, 64}::consts::PI` found
[INFO] [stdout] --> src/game.rs:60:15
[INFO] [stdout] |
[INFO] [stdout] 60 | .powf(3.141592653589793);
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: consider using the constant directly
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant
[INFO] [stdout] = note: `#[deny(clippy::approx_constant)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this `if` statement can be collapsed
[INFO] [stdout] --> src/game.rs:122:13
[INFO] [stdout] |
[INFO] [stdout] 122 | / if ax != self.a.x && ay != self.a.y {
[INFO] [stdout] 123 | | if self.b.b[ax as usize][ay as usize] == BMember::Empty {
[INFO] [stdout] 124 | | self.a.x = ax;
[INFO] [stdout] 125 | | self.a.y = ay;
[INFO] [stdout] ... |
[INFO] [stdout] 128 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default
[INFO] [stdout] help: collapse nested if block
[INFO] [stdout] |
[INFO] [stdout] 122 ~ if ax != self.a.x && ay != self.a.y
[INFO] [stdout] 123 ~ && self.b.b[ax as usize][ay as usize] == BMember::Empty {
[INFO] [stdout] 124 | self.a.x = ax;
[INFO] [stdout] 125 | self.a.y = ay;
[INFO] [stdout] 126 | return
[INFO] [stdout] 127 ~ }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/main.rs:127:13
[INFO] [stdout] |
[INFO] [stdout] 127 | / match bm {
[INFO] [stdout] 128 | | Some((v, i)) => {
[INFO] [stdout] 129 | | tv.extend(v);
[INFO] [stdout] 130 | | ti.extend(i);
[INFO] [stdout] 131 | | },
[INFO] [stdout] 132 | | _ => ()
[INFO] [stdout] 133 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 127 ~ if let Some((v, i)) = bm {
[INFO] [stdout] 128 + tv.extend(v);
[INFO] [stdout] 129 + ti.extend(i);
[INFO] [stdout] 130 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/main.rs:140:13
[INFO] [stdout] |
[INFO] [stdout] 140 | / match bm {
[INFO] [stdout] 141 | | Some(v) => {
[INFO] [stdout] 142 | | tv.extend(v);
[INFO] [stdout] 143 | | },
[INFO] [stdout] 144 | | _ => ()
[INFO] [stdout] 145 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 140 ~ if let Some(v) = bm {
[INFO] [stdout] 141 + tv.extend(v);
[INFO] [stdout] 142 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/game.rs:143:9
[INFO] [stdout] |
[INFO] [stdout] 143 | / match i {
[INFO] [stdout] 144 | | Some(dir) => {
[INFO] [stdout] 145 | | self.s.d = dir;
[INFO] [stdout] 146 | | self.s.tailinst.push(Instruction { dir, x: self.s.x, y: self.s.y });
[INFO] [stdout] 147 | | },
[INFO] [stdout] 148 | | None => ()
[INFO] [stdout] 149 | | }
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 143 ~ if let Some(dir) = i {
[INFO] [stdout] 144 + self.s.d = dir;
[INFO] [stdout] 145 + self.s.tailinst.push(Instruction { dir, x: self.s.x, y: self.s.y });
[INFO] [stdout] 146 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if`
[INFO] [stdout] --> src/game.rs:159:9
[INFO] [stdout] |
[INFO] [stdout] 159 | / match self.b.b[self.s.x as usize][self.s.y as usize] {
[INFO] [stdout] 160 | | BMember::Snake => self.lost = true,
[INFO] [stdout] 161 | | _ => ()
[INFO] [stdout] 162 | | }
[INFO] [stdout] | |_________^ help: try: `if self.b.b[self.s.x as usize][self.s.y as usize] == BMember::Snake { self.lost = true }`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this `if` statement can be collapsed
[INFO] [stdout] --> src/game.rs:178:9
[INFO] [stdout] |
[INFO] [stdout] 178 | / if self.s.tailinst.len() != 0 {
[INFO] [stdout] 179 | | if self.s.tailinst[0].x == self.s.tx && self.s.tailinst[0].y == self.s.ty {
[INFO] [stdout] 180 | | self.s.td = self.s.tailinst[0].dir;
[INFO] [stdout] 181 | | self.s.tailinst.remove(0);
[INFO] [stdout] 182 | | }
[INFO] [stdout] 183 | | }
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stdout] help: collapse nested if block
[INFO] [stdout] |
[INFO] [stdout] 178 ~ if self.s.tailinst.len() != 0
[INFO] [stdout] 179 ~ && self.s.tailinst[0].x == self.s.tx && self.s.tailinst[0].y == self.s.ty {
[INFO] [stdout] 180 | self.s.td = self.s.tailinst[0].dir;
[INFO] [stdout] 181 | self.s.tailinst.remove(0);
[INFO] [stdout] 182 ~ }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] error: could not compile `snakebot` (bin "snakebot" test) due to 1 previous error; 21 warnings emitted
[INFO] [stdout] warning: length comparison to zero
[INFO] [stdout] --> src/game.rs:178:12
[INFO] [stdout] |
[INFO] [stdout] 178 | if self.s.tailinst.len() != 0 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.s.tailinst.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] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler
[INFO] [stdout] --> src/main.rs:178:18
[INFO] [stdout] |
[INFO] [stdout] 178 | recalc_board(&gl, &s.game, &mut s.dynamic_colbuf, true);
[INFO] [stdout] | ^^^ help: change this to: `gl`
[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: unneeded `return` statement
[INFO] [stdout] --> src/main.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 40 | / return (
[INFO] [stdout] 41 | | -1.0 + x as f32 * (2.0 / b.w as f32),
[INFO] [stdout] 42 | | -1.0 + y as f32 * (2.0 / b.h as f32)
[INFO] [stdout] 43 | | )
[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] 40 ~ (
[INFO] [stdout] 41 + -1.0 + x as f32 * (2.0 / b.w as f32),
[INFO] [stdout] 42 + -1.0 + y as f32 * (2.0 / b.h as f32)
[INFO] [stdout] 43 + )
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if`
[INFO] [stdout] --> src/main.rs:224:18
[INFO] [stdout] |
[INFO] [stdout] 224 | } => match k.state {
[INFO] [stdout] | __________________^
[INFO] [stdout] 225 | | ElementState::Pressed => input(&mut state, k.virtual_keycode),
[INFO] [stdout] 226 | | _ => ()
[INFO] [stdout] 227 | | },
[INFO] [stdout] | |_____________^ help: try: `if k.state == ElementState::Pressed { input(&mut state, k.virtual_keycode) }`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: module `GLium` should have a snake case name
[INFO] [stdout] --> src/main.rs:7:5
[INFO] [stdout] |
[INFO] [stdout] 7 | mod GLium;
[INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `glium`
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/main.rs:127:13
[INFO] [stdout] |
[INFO] [stdout] 127 | / match bm {
[INFO] [stdout] 128 | | Some((v, i)) => {
[INFO] [stdout] 129 | | tv.extend(v);
[INFO] [stdout] 130 | | ti.extend(i);
[INFO] [stdout] 131 | | },
[INFO] [stdout] 132 | | _ => ()
[INFO] [stdout] 133 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 127 ~ if let Some((v, i)) = bm {
[INFO] [stdout] 128 + tv.extend(v);
[INFO] [stdout] 129 + ti.extend(i);
[INFO] [stdout] 130 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
[INFO] [stdout] --> src/main.rs:140:13
[INFO] [stdout] |
[INFO] [stdout] 140 | / match bm {
[INFO] [stdout] 141 | | Some(v) => {
[INFO] [stdout] 142 | | tv.extend(v);
[INFO] [stdout] 143 | | },
[INFO] [stdout] 144 | | _ => ()
[INFO] [stdout] 145 | | }
[INFO] [stdout] | |_____________^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 140 ~ if let Some(v) = bm {
[INFO] [stdout] 141 + tv.extend(v);
[INFO] [stdout] 142 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler
[INFO] [stdout] --> src/main.rs:178:18
[INFO] [stdout] |
[INFO] [stdout] 178 | recalc_board(&gl, &s.game, &mut s.dynamic_colbuf, true);
[INFO] [stdout] | ^^^ help: change this to: `gl`
[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 be trying to use `match` for an equality check. Consider using `if`
[INFO] [stdout] --> src/main.rs:224:18
[INFO] [stdout] |
[INFO] [stdout] 224 | } => match k.state {
[INFO] [stdout] | __________________^
[INFO] [stdout] 225 | | ElementState::Pressed => input(&mut state, k.virtual_keycode),
[INFO] [stdout] 226 | | _ => ()
[INFO] [stdout] 227 | | },
[INFO] [stdout] | |_____________^ help: try: `if k.state == ElementState::Pressed { input(&mut state, k.virtual_keycode) }`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: module `GLium` should have a snake case name
[INFO] [stdout] --> src/main.rs:7:5
[INFO] [stdout] |
[INFO] [stdout] 7 | mod GLium;
[INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `glium`
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] error: could not compile `snakebot` (bin "snakebot") due to 1 previous error; 21 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "aa4b969a3e25b241d31a0613f7cf44a378b7e7bdb6eb2d035f3f6b17ac1aaa13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa4b969a3e25b241d31a0613f7cf44a378b7e7bdb6eb2d035f3f6b17ac1aaa13", kill_on_drop: false }`
[INFO] [stdout] aa4b969a3e25b241d31a0613f7cf44a378b7e7bdb6eb2d035f3f6b17ac1aaa13