[INFO] cloning repository https://github.com/kirinokirino/turetel [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kirinokirino/turetel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Fturetel", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Fturetel'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1e022cb74ec0e66bd12ba1a339fc1b68535caf6b [INFO] linting kirinokirino/turetel against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Fturetel" "/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/kirinokirino/turetel [INFO] finished tweaking git repo https://github.com/kirinokirino/turetel [INFO] tweaked toml for git repo https://github.com/kirinokirino/turetel written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kirinokirino/turetel 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/kirinokirino/turetel 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.1 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.33 [INFO] [stderr] Downloaded futures-io v0.3.25 [INFO] [stderr] Downloaded futures-macro v0.3.25 [INFO] [stderr] Downloaded futures-task v0.3.25 [INFO] [stderr] Downloaded futures-channel v0.3.25 [INFO] [stderr] Downloaded futures-executor v0.3.25 [INFO] [stderr] Downloaded serde_derive v1.0.151 [INFO] [stderr] Downloaded futures v0.3.25 [INFO] [stderr] Downloaded minifb v0.23.0 [INFO] [stderr] Downloaded cmake v0.1.49 [INFO] [stderr] Downloaded x11-dl v2.20.1 [INFO] [stderr] Downloaded serde v1.0.151 [INFO] [stderr] Downloaded futures-util v0.3.25 [INFO] [stderr] Downloaded sdl2 v0.35.2 [INFO] [stderr] Downloaded web-sys v0.3.60 [INFO] [stderr] Downloaded orbclient v0.3.42 [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] e3e0173d19459bc2db4745c15acdb5cc68410e8ec867021b7d5cd42228e1918a [INFO] running `Command { std: "docker" "start" "-a" "e3e0173d19459bc2db4745c15acdb5cc68410e8ec867021b7d5cd42228e1918a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e3e0173d19459bc2db4745c15acdb5cc68410e8ec867021b7d5cd42228e1918a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3e0173d19459bc2db4745c15acdb5cc68410e8ec867021b7d5cd42228e1918a", kill_on_drop: false }` [INFO] [stdout] e3e0173d19459bc2db4745c15acdb5cc68410e8ec867021b7d5cd42228e1918a [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] e2cdec1f5e178ccf0dee2ee5f222789a1be0de4b0f1426876e5ad9df16780555 [INFO] running `Command { std: "docker" "start" "-a" "e2cdec1f5e178ccf0dee2ee5f222789a1be0de4b0f1426876e5ad9df16780555", kill_on_drop: false }` [INFO] [stderr] Compiling pkg-config v0.3.26 [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Compiling cc v1.0.78 [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Compiling anyhow v1.0.68 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking glam v0.22.0 [INFO] [stderr] Checking fastrand v1.8.0 [INFO] [stderr] Checking raw-window-handle v0.4.3 [INFO] [stderr] Compiling x11-dl v2.20.1 [INFO] [stderr] Compiling minifb v0.23.0 [INFO] [stderr] Checking drawer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/graphics.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / /// Functions here produce pixels, analytical shapes are in `geometry` [INFO] [stdout] 6 | | [INFO] [stdout] | |_^ [INFO] [stdout] 7 | pub fn circle(origin: Vec2, radius: f32) -> Vec { [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] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/turtle.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if (command.scope() == local_scope) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 84 - if (command.scope() == local_scope) { [INFO] [stdout] 84 + if command.scope() == local_scope { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/graphics.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / /// Functions here produce pixels, analytical shapes are in `geometry` [INFO] [stdout] 6 | | [INFO] [stdout] | |_^ [INFO] [stdout] 7 | pub fn circle(origin: Vec2, radius: f32) -> Vec { [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] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/turtle.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if (command.scope() == local_scope) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 84 - if (command.scope() == local_scope) { [INFO] [stdout] 84 + if command.scope() == local_scope { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scope` [INFO] [stdout] --> src/turtle.rs:76:33 [INFO] [stdout] | [INFO] [stdout] 76 | Command::Repeat(scope, times) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scope` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/turtle.rs:78:25 [INFO] [stdout] | [INFO] [stdout] 78 | for i in 0..*times { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scope` [INFO] [stdout] --> src/turtle.rs:76:33 [INFO] [stdout] | [INFO] [stdout] 76 | Command::Repeat(scope, times) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scope` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/turtle.rs:78:25 [INFO] [stdout] | [INFO] [stdout] 78 | for i in 0..*times { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp_u8` is never used [INFO] [stdout] --> src/common.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn lerp_u8(start: u8, end: u8, t: f32) -> u8 { [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 `constrain` is never used [INFO] [stdout] --> src/common.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn constrain(this: T, min: T, max: T) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `corners`, `bottom_right`, and `empty` are never used [INFO] [stdout] --> src/geometry.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Rect { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 16 | pub fn new(pos: Vec2, size: Size) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn corners(&self) -> (Vec2, Vec2, Vec2, Vec2) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn bottom_right(&self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn empty(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `area` is never used [INFO] [stdout] --> src/geometry.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 126 | impl Size { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn area(self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `interpolation_value`, `project`, and `dotted` are never used [INFO] [stdout] --> src/geometry.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 142 | impl Line { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn interpolation_value(&self, point: Vec2) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn project(&self, point: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn dotted(&self, step: f32) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `empty` is never used [INFO] [stdout] --> src/geometry.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 205 | impl Triangle { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn empty(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `circle` is never used [INFO] [stdout] --> src/graphics.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn circle(origin: Vec2, radius: f32) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `line` is never used [INFO] [stdout] --> src/graphics.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn line(from: Vec2, to: Vec2) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp_u8` is never used [INFO] [stdout] --> src/common.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn lerp_u8(start: u8, end: u8, t: f32) -> u8 { [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 `constrain` is never used [INFO] [stdout] --> src/common.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn constrain(this: T, min: T, max: T) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `corners`, `bottom_right`, and `empty` are never used [INFO] [stdout] --> src/geometry.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Rect { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 16 | pub fn new(pos: Vec2, size: Size) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn corners(&self) -> (Vec2, Vec2, Vec2, Vec2) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn bottom_right(&self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn empty(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `area` is never used [INFO] [stdout] --> src/geometry.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 126 | impl Size { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn area(self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `interpolation_value`, `project`, and `dotted` are never used [INFO] [stdout] --> src/geometry.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 142 | impl Line { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn interpolation_value(&self, point: Vec2) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn project(&self, point: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn dotted(&self, step: f32) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `empty` is never used [INFO] [stdout] --> src/geometry.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 205 | impl Triangle { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn empty(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `circle` is never used [INFO] [stdout] --> src/graphics.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn circle(origin: Vec2, radius: f32) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `line` is never used [INFO] [stdout] --> src/graphics.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn line(from: Vec2, to: Vec2) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] 128 | | Self { width, height } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/main.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![warn(clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_fn)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 127 | pub const fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | / pub fn area(self) -> u32 { [INFO] [stdout] 132 | | self.width * self.height [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 131 | pub const fn area(self) -> u32 { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 143 | / pub fn new(from: Vec2, to: Vec2) -> Self { [INFO] [stdout] 144 | | Self { a: from, b: to } [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 143 | pub const fn new(from: Vec2, to: Vec2) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | let Line { a, b } = *self; [INFO] [stdout] | ^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] = note: `#[warn(clippy::use_self)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let Line { a, b } = *self; [INFO] [stdout] | ^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] 128 | | Self { width, height } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/main.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![warn(clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_fn)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 127 | pub const fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub fn new(p0: Vec2, p1: Vec2, p2: Vec2) -> Self { [INFO] [stdout] 207 | | // TODO: ensure the order of points (clockwise) [INFO] [stdout] 208 | | Self { [INFO] [stdout] 209 | | a: p0, [INFO] [stdout] ... | [INFO] [stdout] 213 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 206 | pub const fn new(p0: Vec2, p1: Vec2, p2: Vec2) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | / pub fn area(self) -> u32 { [INFO] [stdout] 132 | | self.width * self.height [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 131 | pub const fn area(self) -> u32 { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/geometry.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 217 | / let rect_points = Rect::bounding(&[a, b, c]) [INFO] [stdout] 218 | | .solid_color() [INFO] [stdout] 219 | | .into_iter() [INFO] [stdout] 220 | | .filter(|point| point_is_in_triangle(*point, self)) [INFO] [stdout] 221 | | .collect(); [INFO] [stdout] | |_______________________- unnecessary `let` binding [INFO] [stdout] 222 | rect_points [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 217 ~ [INFO] [stdout] 218 ~ Rect::bounding(&[a, b, c]) [INFO] [stdout] 219 + .solid_color() [INFO] [stdout] 220 + .into_iter() [INFO] [stdout] 221 + .filter(|point| point_is_in_triangle(*point, self)) [INFO] [stdout] 222 + .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | let Triangle { a, b, c } = *self; [INFO] [stdout] | ^^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 143 | / pub fn new(from: Vec2, to: Vec2) -> Self { [INFO] [stdout] 144 | | Self { a: from, b: to } [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 143 | pub const fn new(from: Vec2, to: Vec2) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:226:13 [INFO] [stdout] | [INFO] [stdout] 226 | let Triangle { a, b, c } = *self; [INFO] [stdout] | ^^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | let Line { a, b } = *self; [INFO] [stdout] | ^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] = note: `#[warn(clippy::use_self)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let Line { a, b } = *self; [INFO] [stdout] | ^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiply and add expressions can be calculated more efficiently and accurately [INFO] [stdout] --> src/math.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | ((point.x - b.x) * (a.y - b.y) - (a.x - b.x) * (point.y - b.y)).is_sign_positive() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `(a.x - b.x).mul_add(-(point.y - b.y), (point.x - b.x) * (a.y - b.y))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suboptimal_flops [INFO] [stdout] = note: `#[warn(clippy::suboptimal_flops)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/geometry.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub fn new(p0: Vec2, p1: Vec2, p2: Vec2) -> Self { [INFO] [stdout] 207 | | // TODO: ensure the order of points (clockwise) [INFO] [stdout] 208 | | Self { [INFO] [stdout] 209 | | a: p0, [INFO] [stdout] ... | [INFO] [stdout] 213 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 206 | pub const fn new(p0: Vec2, p1: Vec2, p2: Vec2) -> Self { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/geometry.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 217 | / let rect_points = Rect::bounding(&[a, b, c]) [INFO] [stdout] 218 | | .solid_color() [INFO] [stdout] 219 | | .into_iter() [INFO] [stdout] 220 | | .filter(|point| point_is_in_triangle(*point, self)) [INFO] [stdout] 221 | | .collect(); [INFO] [stdout] | |_______________________- unnecessary `let` binding [INFO] [stdout] 222 | rect_points [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 217 ~ [INFO] [stdout] 218 ~ Rect::bounding(&[a, b, c]) [INFO] [stdout] 219 + .solid_color() [INFO] [stdout] 220 + .into_iter() [INFO] [stdout] 221 + .filter(|point| point_is_in_triangle(*point, self)) [INFO] [stdout] 222 + .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/script.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | .filter(|line| !(line.len() == 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(line.len() != 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: length comparison to zero [INFO] [stdout] --> src/script.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | .filter(|line| !(line.len() == 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | let Triangle { a, b, c } = *self; [INFO] [stdout] | ^^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/geometry.rs:226:13 [INFO] [stdout] | [INFO] [stdout] 226 | let Triangle { a, b, c } = *self; [INFO] [stdout] | ^^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiply and add expressions can be calculated more efficiently and accurately [INFO] [stdout] --> src/math.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | ((point.x - b.x) * (a.y - b.y) - (a.x - b.x) * (point.y - b.y)).is_sign_positive() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `(a.x - b.x).mul_add(-(point.y - b.y), (point.x - b.x) * (a.y - b.y))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suboptimal_flops [INFO] [stdout] = note: `#[warn(clippy::suboptimal_flops)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/turtle.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn scope(&self) -> Scope { [INFO] [stdout] 17 | | match self { [INFO] [stdout] 18 | | Command::Move(scope, _) => return *scope, [INFO] [stdout] 19 | | Command::Turn(scope, _) => return *scope, [INFO] [stdout] ... | [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 16 | pub const fn scope(&self) -> Scope { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/script.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | .filter(|line| !(line.len() == 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(line.len() != 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: unneeded `return` statement [INFO] [stdout] --> src/turtle.rs:18:40 [INFO] [stdout] | [INFO] [stdout] 18 | Command::Move(scope, _) => return *scope, [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] 18 - Command::Move(scope, _) => return *scope, [INFO] [stdout] 18 + Command::Move(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/turtle.rs:19:40 [INFO] [stdout] | [INFO] [stdout] 19 | Command::Turn(scope, _) => return *scope, [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] 19 - Command::Turn(scope, _) => return *scope, [INFO] [stdout] 19 + Command::Turn(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/script.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | .filter(|line| !(line.len() == 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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/turtle.rs:20:42 [INFO] [stdout] | [INFO] [stdout] 20 | Command::Repeat(scope, _) => return *scope, [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] 20 - Command::Repeat(scope, _) => return *scope, [INFO] [stdout] 20 + Command::Repeat(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | Command::Move(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | Command::Turn(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | Command::Repeat(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be a `const fn` [INFO] [stdout] --> src/turtle.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn scope(&self) -> Scope { [INFO] [stdout] 17 | | match self { [INFO] [stdout] 18 | | Command::Move(scope, _) => return *scope, [INFO] [stdout] 19 | | Command::Turn(scope, _) => return *scope, [INFO] [stdout] ... | [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn [INFO] [stdout] help: make the function `const` [INFO] [stdout] | [INFO] [stdout] 16 | pub const fn scope(&self) -> Scope { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/turtle.rs:18:40 [INFO] [stdout] | [INFO] [stdout] 18 | Command::Move(scope, _) => return *scope, [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] 18 - Command::Move(scope, _) => return *scope, [INFO] [stdout] 18 + Command::Move(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/turtle.rs:19:40 [INFO] [stdout] | [INFO] [stdout] 19 | Command::Turn(scope, _) => return *scope, [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] 19 - Command::Turn(scope, _) => return *scope, [INFO] [stdout] 19 + Command::Turn(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/turtle.rs:20:42 [INFO] [stdout] | [INFO] [stdout] 20 | Command::Repeat(scope, _) => return *scope, [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] 20 - Command::Repeat(scope, _) => return *scope, [INFO] [stdout] 20 + Command::Repeat(scope, _) => *scope, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | Command::Move(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | Command::Turn(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary structure name repetition [INFO] [stdout] --> src/turtle.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | Command::Repeat(scope, _) => return *scope, [INFO] [stdout] | ^^^^^^^ help: use the applicable keyword: `Self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/window.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if self.elapsed_updates % 120 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.elapsed_updates.is_multiple_of(120)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/window.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if self.elapsed_updates % 120 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.elapsed_updates.is_multiple_of(120)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.93s [INFO] running `Command { std: "docker" "inspect" "e2cdec1f5e178ccf0dee2ee5f222789a1be0de4b0f1426876e5ad9df16780555", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2cdec1f5e178ccf0dee2ee5f222789a1be0de4b0f1426876e5ad9df16780555", kill_on_drop: false }` [INFO] [stdout] e2cdec1f5e178ccf0dee2ee5f222789a1be0de4b0f1426876e5ad9df16780555