[INFO] cloning repository https://github.com/JazzerThighs/qop-core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JazzerThighs/qop-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJazzerThighs%2Fqop-core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJazzerThighs%2Fqop-core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fbecc0dd55e4ec85ed4fccc9fb6ae15c0891d7c3 [INFO] linting JazzerThighs/qop-core/fbecc0dd55e4ec85ed4fccc9fb6ae15c0891d7c3 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJazzerThighs%2Fqop-core" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/JazzerThighs/qop-core [INFO] finished tweaking git repo https://github.com/JazzerThighs/qop-core [INFO] tweaked toml for git repo https://github.com/JazzerThighs/qop-core written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JazzerThighs/qop-core 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/JazzerThighs/qop-core 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wayland-protocols-wlr v0.3.8 [INFO] [stderr] Downloaded wayland-sys v0.31.6 [INFO] [stderr] Downloaded wayland-cursor v0.31.10 [INFO] [stderr] Downloaded ab_glyph_rasterizer v0.1.9 [INFO] [stderr] Downloaded libredox v0.1.4 [INFO] [stderr] Downloaded wayland-scanner v0.31.6 [INFO] [stderr] Downloaded wayland-protocols-plasma v0.3.8 [INFO] [stderr] Downloaded better_default v1.0.5 [INFO] [stderr] Downloaded scale_omnibus v0.1.2 [INFO] [stderr] Downloaded duplicate v2.0.0 [INFO] [stderr] Downloaded wayland-backend v0.3.10 [INFO] [stderr] Downloaded polling v3.8.0 [INFO] [stderr] Downloaded cc v1.2.29 [INFO] [stderr] Downloaded bytemuck v1.23.1 [INFO] [stderr] Downloaded wayland-client v0.31.10 [INFO] [stderr] Downloaded redox_syscall v0.5.13 [INFO] [stderr] Downloaded winnow v0.7.11 [INFO] [stderr] Downloaded wayland-protocols v0.32.8 [INFO] [stderr] Downloaded ab_glyph v0.2.30 [INFO] [stderr] Downloaded nestify v0.3.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] ebc69ba25f52d7a674ae1d04fb9a039a78592ebc029119ed718ea2dba2ef1892 [INFO] running `Command { std: "docker" "start" "-a" "ebc69ba25f52d7a674ae1d04fb9a039a78592ebc029119ed718ea2dba2ef1892", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ebc69ba25f52d7a674ae1d04fb9a039a78592ebc029119ed718ea2dba2ef1892", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebc69ba25f52d7a674ae1d04fb9a039a78592ebc029119ed718ea2dba2ef1892", kill_on_drop: false }` [INFO] [stdout] ebc69ba25f52d7a674ae1d04fb9a039a78592ebc029119ed718ea2dba2ef1892 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] fa2142b49285c0e898b72c6186807b11dc8c00f9b0070e920795eec639098b26 [INFO] running `Command { std: "docker" "start" "-a" "fa2142b49285c0e898b72c6186807b11dc8c00f9b0070e920795eec639098b26", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling wayland-client v0.31.10 [INFO] [stderr] Compiling wayland-sys v0.31.6 [INFO] [stderr] Compiling cc v1.2.29 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking libloading v0.8.8 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.9 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Compiling wayland-scanner v0.31.6 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Compiling wayland-backend v0.3.10 [INFO] [stderr] Checking owned_ttf_parser v0.25.0 [INFO] [stderr] Checking ab_glyph v0.2.30 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking polling v3.8.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling better_default v1.0.5 [INFO] [stderr] Compiling nestify v0.3.3 [INFO] [stderr] Compiling duplicate v2.0.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking wayland-protocols v0.32.8 [INFO] [stderr] Checking wayland-cursor v0.31.10 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking scale_omnibus v0.1.2 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.8 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.8 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking qop-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `_edit::*` [INFO] [stdout] --> src/engine/_edit/_holds.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::engine::{_edit::*, *}; [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 import: `duplicate::duplicate_item` [INFO] [stdout] --> src/engine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `_edit::*` [INFO] [stdout] --> src/engine/_edit/_holds.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::engine::{_edit::*, *}; [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 import: `duplicate::duplicate_item` [INFO] [stdout] --> src/engine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::duplicate_item` [INFO] [stdout] --> src/temperament.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `winit::keyboard::KeyCode` [INFO] [stdout] --> src/temperament.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use winit::keyboard::KeyCode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `better_default::Default` [INFO] [stdout] --> src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use better_default::Default; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::duplicate_item` [INFO] [stdout] --> src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nestify::nest` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use nestify::nest; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `marker::PhantomData` [INFO] [stdout] --> src/lib.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::{fmt::Debug, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `winit::keyboard::KeyCode` [INFO] [stdout] --> src/lib.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use winit::keyboard::KeyCode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::duplicate_item` [INFO] [stdout] --> src/temperament.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `winit::keyboard::KeyCode` [INFO] [stdout] --> src/temperament.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use winit::keyboard::KeyCode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `better_default::Default` [INFO] [stdout] --> src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use better_default::Default; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::duplicate_item` [INFO] [stdout] --> src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use duplicate::duplicate_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nestify::nest` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use nestify::nest; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `marker::PhantomData` [INFO] [stdout] --> src/lib.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::{fmt::Debug, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `winit::keyboard::KeyCode` [INFO] [stdout] --> src/lib.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use winit::keyboard::KeyCode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/_edit/_dig_inputs.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return self.holds.check_digitalref_invariants(dig_vec_len); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 - return self.holds.check_digitalref_invariants(dig_vec_len); [INFO] [stdout] 171 + self.holds.check_digitalref_invariants(dig_vec_len) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/_edit/_gut.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / if g_idx < self.guts.len() && key_idx_val < self.dig_inputs.len() { [INFO] [stdout] 35 | | if !self.guts[g_idx].togs.contains(&key_idx_val) { [INFO] [stdout] 36 | | self.guts[g_idx].togs.push(key_idx_val) [INFO] [stdout] 37 | | }; [INFO] [stdout] 38 | | } [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] 34 ~ if g_idx < self.guts.len() && key_idx_val < self.dig_inputs.len() [INFO] [stdout] 35 ~ && !self.guts[g_idx].togs.contains(&key_idx_val) { [INFO] [stdout] 36 | self.guts[g_idx].togs.push(key_idx_val) [INFO] [stdout] 37 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_gut.rs:50:71 [INFO] [stdout] | [INFO] [stdout] 50 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:13:71 [INFO] [stdout] | [INFO] [stdout] 13 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:48:71 [INFO] [stdout] | [INFO] [stdout] 48 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `d` is used to index `d_del_vec` [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:199:18 [INFO] [stdout] | [INFO] [stdout] 199 | for d in 0..d_del_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 199 - for d in 0..d_del_vec.len() { [INFO] [stdout] 199 + for (d, ) in d_del_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/_edit/_dig_inputs.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return self.holds.check_digitalref_invariants(dig_vec_len); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 - return self.holds.check_digitalref_invariants(dig_vec_len); [INFO] [stdout] 171 + self.holds.check_digitalref_invariants(dig_vec_len) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `d` is used to index `d_del_vec` [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:212:18 [INFO] [stdout] | [INFO] [stdout] 212 | for d in 0..d_del_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 212 - for d in 0..d_del_vec.len() { [INFO] [stdout] 212 + for (d, ) in d_del_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:13:88 [INFO] [stdout] | [INFO] [stdout] 13 | self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !v_multi] [v_multi_insert_set] [v_multi_remove_set] [v_multi_remove_btn] [v_multi_toggle_radio_mode]; [INFO] [stdout] 19 + [VFSet] [f_multi] [f_multi_insert_set] [f_multi_remove_set] [f_multi_remove_btn] [f_multi_toggle_radio_mode]; [INFO] [stdout] 20 + [ComboSet] [c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 21 + )] [INFO] [stdout] 22 + impl Engine { [INFO] [stdout] 23 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 24 + if set_idx <= self.multifield.len() { [INFO] [stdout] 25 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] 28 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 29 + if set_idx < self.multifield.len() [INFO] [stdout] 30 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !f_multi] [f_multi_insert_set] [f_multi_remove_set] [f_multi_remove_btn] [f_multi_toggle_radio_mode]; [INFO] [stdout] 19 + [ComboSet] [c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 20 + )] [INFO] [stdout] 21 + impl Engine { [INFO] [stdout] 22 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 23 + if set_idx <= self.multifield.len() { [INFO] [stdout] 24 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 25 + } [INFO] [stdout] 26 + } [INFO] [stdout] 27 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 28 + if set_idx < self.multifield.len() [INFO] [stdout] 29 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 19 + )] [INFO] [stdout] 20 + impl Engine { [INFO] [stdout] 21 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 22 + if set_idx <= self.multifield.len() { [INFO] [stdout] 23 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 24 + } [INFO] [stdout] 25 + } [INFO] [stdout] 26 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 27 + if set_idx < self.multifield.len() [INFO] [stdout] 28 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:73:71 [INFO] [stdout] | [INFO] [stdout] 73 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:91:71 [INFO] [stdout] | [INFO] [stdout] 91 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | / if let Some(d_val) = d_del { [INFO] [stdout] 122 | | if set_idx < self.multifield.len() { [INFO] [stdout] 123 | | self.multifield[set_idx].deltafield[del_idx].d_field[d] = d_val; [INFO] [stdout] 124 | | } [INFO] [stdout] 125 | | } [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] 121 ~ if let Some(d_val) = d_del [INFO] [stdout] 122 ~ && set_idx < self.multifield.len() { [INFO] [stdout] 123 | self.multifield[set_idx].deltafield[del_idx].d_field[d] = d_val; [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/_edit/_gut.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / if g_idx < self.guts.len() && key_idx_val < self.dig_inputs.len() { [INFO] [stdout] 35 | | if !self.guts[g_idx].togs.contains(&key_idx_val) { [INFO] [stdout] 36 | | self.guts[g_idx].togs.push(key_idx_val) [INFO] [stdout] 37 | | }; [INFO] [stdout] 38 | | } [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] 34 ~ if g_idx < self.guts.len() && key_idx_val < self.dig_inputs.len() [INFO] [stdout] 35 ~ && !self.guts[g_idx].togs.contains(&key_idx_val) { [INFO] [stdout] 36 | self.guts[g_idx].togs.push(key_idx_val) [INFO] [stdout] 37 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_gut.rs:50:71 [INFO] [stdout] | [INFO] [stdout] 50 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:13:71 [INFO] [stdout] | [INFO] [stdout] 13 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:48:71 [INFO] [stdout] | [INFO] [stdout] 48 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `d` is used to index `d_del_vec` [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:199:18 [INFO] [stdout] | [INFO] [stdout] 199 | for d in 0..d_del_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 199 - for d in 0..d_del_vec.len() { [INFO] [stdout] 199 + for (d, ) in d_del_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `d` is used to index `d_del_vec` [INFO] [stdout] --> src/engine/_edit/_trnsp.rs:212:18 [INFO] [stdout] | [INFO] [stdout] 212 | for d in 0..d_del_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 212 - for d in 0..d_del_vec.len() { [INFO] [stdout] 212 + for (d, ) in d_del_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:13:88 [INFO] [stdout] | [INFO] [stdout] 13 | self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !v_multi] [v_multi_insert_set] [v_multi_remove_set] [v_multi_remove_btn] [v_multi_toggle_radio_mode]; [INFO] [stdout] 19 + [VFSet] [f_multi] [f_multi_insert_set] [f_multi_remove_set] [f_multi_remove_btn] [f_multi_toggle_radio_mode]; [INFO] [stdout] 20 + [ComboSet] [c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 21 + )] [INFO] [stdout] 22 + impl Engine { [INFO] [stdout] 23 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 24 + if set_idx <= self.multifield.len() { [INFO] [stdout] 25 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] 28 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 29 + if set_idx < self.multifield.len() [INFO] [stdout] 30 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !f_multi] [f_multi_insert_set] [f_multi_remove_set] [f_multi_remove_btn] [f_multi_toggle_radio_mode]; [INFO] [stdout] 19 + [ComboSet] [c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 20 + )] [INFO] [stdout] 21 + impl Engine { [INFO] [stdout] 22 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 23 + if set_idx <= self.multifield.len() { [INFO] [stdout] 24 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 25 + } [INFO] [stdout] 26 + } [INFO] [stdout] 27 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 28 + if set_idx < self.multifield.len() [INFO] [stdout] 29 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | && self.multifield.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 18 ~ && !c_multi] [c_multi_insert_set] [c_multi_remove_set] [c_multi_remove_btn] [c_multi_toggle_radio_mode]; [INFO] [stdout] 19 + )] [INFO] [stdout] 20 + impl Engine { [INFO] [stdout] 21 + pub fn multi_insert_set(&mut self, set_idx: usize) { [INFO] [stdout] 22 + if set_idx <= self.multifield.len() { [INFO] [stdout] 23 + self.multifield.insert(set_idx, SetType::new(&mut NewEnginePartParams::new(&self))); [INFO] [stdout] 24 + } [INFO] [stdout] 25 + } [INFO] [stdout] 26 + pub fn multi_remove_set(&mut self, set_idx: usize) { [INFO] [stdout] 27 + if set_idx < self.multifield.len() [INFO] [stdout] 28 + && self.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:73:71 [INFO] [stdout] | [INFO] [stdout] 73 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:91:71 [INFO] [stdout] | [INFO] [stdout] 91 | let mut n: NewEnginePartParams = NewEnginePartParams::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/_edit/_vfc_sets.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | / if let Some(d_val) = d_del { [INFO] [stdout] 122 | | if set_idx < self.multifield.len() { [INFO] [stdout] 123 | | self.multifield[set_idx].deltafield[del_idx].d_field[d] = d_val; [INFO] [stdout] 124 | | } [INFO] [stdout] 125 | | } [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] 121 ~ if let Some(d_val) = d_del [INFO] [stdout] 122 ~ && set_idx < self.multifield.len() { [INFO] [stdout] 123 | self.multifield[set_idx].deltafield[del_idx].d_field[d] = d_val; [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:140:30 [INFO] [stdout] | [INFO] [stdout] 140 | gut_max_pressed: self.gut_max_pressed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_max_pressed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:141:30 [INFO] [stdout] | [INFO] [stdout] 141 | gut_min_pressed: self.gut_min_pressed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_min_pressed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:142:29 [INFO] [stdout] | [INFO] [stdout] 142 | gut_radio_mode: self.gut_radio_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_radio_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:148:31 [INFO] [stdout] | [INFO] [stdout] 148 | index_delta_bool: self.index_delta_bool.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.index_delta_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | extra_delta_bool: self.extra_delta_bool.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.extra_delta_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament/intervals.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | let mut normalized = value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament/intervals.rs:21:30 [INFO] [stdout] | [INFO] [stdout] 21 | let mut normalized = value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:140:30 [INFO] [stdout] | [INFO] [stdout] 140 | gut_max_pressed: self.gut_max_pressed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_max_pressed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:141:30 [INFO] [stdout] | [INFO] [stdout] 141 | gut_min_pressed: self.gut_min_pressed.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_min_pressed` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:142:29 [INFO] [stdout] | [INFO] [stdout] 142 | gut_radio_mode: self.gut_radio_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gut_radio_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:148:31 [INFO] [stdout] | [INFO] [stdout] 148 | index_delta_bool: self.index_delta_bool.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.index_delta_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/engine.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | extra_delta_bool: self.extra_delta_bool.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.extra_delta_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament/intervals.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | let mut normalized = value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament/intervals.rs:21:30 [INFO] [stdout] | [INFO] [stdout] 21 | let mut normalized = value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/temperament/intervals.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / let mut intervals = Vec::new(); [INFO] [stdout] 62 | | $( [INFO] [stdout] 63 | | intervals.push(WikiInterval { [INFO] [stdout] 64 | | name: $name.to_string(), [INFO] [stdout] 65 | | hz_ratio: $hz, [INFO] [stdout] 66 | | cents_above_fundamental: CENTS_IN_OCTAVE * $hz.log2(), [INFO] [stdout] 67 | | }); [INFO] [stdout] | |_______________^ help: consider using the `vec![]` macro: `let intervals = vec![..];` [INFO] [stdout] ... [INFO] [stdout] 74 | pub static ref WIKI_MICROTONAL_INTERVALS: Vec = wiki_interval_input![ [INFO] [stdout] | ___________________________________________________________________- [INFO] [stdout] 75 | | ("Unison, monophony, perfect prime, tonic, or fundamental", 1_f64), [INFO] [stdout] 76 | | ("Sixty-five-thousand-five-hundred-thirty-seventh harmonic", 65537_f64 / 65536_f64), [INFO] [stdout] 77 | | ("Ragisma", 4375_f64 / 4374_f64), [INFO] [stdout] ... | [INFO] [stdout] 389 | | ("Octave or diapason", 2_f64), [INFO] [stdout] 390 | | ]; [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `wiki_interval_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/temperament/intervals.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / let mut intervals = Vec::new(); [INFO] [stdout] 62 | | $( [INFO] [stdout] 63 | | intervals.push(WikiInterval { [INFO] [stdout] 64 | | name: $name.to_string(), [INFO] [stdout] 65 | | hz_ratio: $hz, [INFO] [stdout] 66 | | cents_above_fundamental: CENTS_IN_OCTAVE * $hz.log2(), [INFO] [stdout] 67 | | }); [INFO] [stdout] | |_______________^ help: consider using the `vec![]` macro: `let intervals = vec![..];` [INFO] [stdout] ... [INFO] [stdout] 74 | pub static ref WIKI_MICROTONAL_INTERVALS: Vec = wiki_interval_input![ [INFO] [stdout] | ___________________________________________________________________- [INFO] [stdout] 75 | | ("Unison, monophony, perfect prime, tonic, or fundamental", 1_f64), [INFO] [stdout] 76 | | ("Sixty-five-thousand-five-hundred-thirty-seventh harmonic", 65537_f64 / 65536_f64), [INFO] [stdout] 77 | | ("Ragisma", 4375_f64 / 4374_f64), [INFO] [stdout] ... | [INFO] [stdout] 389 | | ("Octave or diapason", 2_f64), [INFO] [stdout] 390 | | ]; [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `wiki_interval_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | reference_note: self.reference_note.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_note` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | tuning_hz: self.tuning_hz.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tuning_hz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | octave_scalar_factor: self.octave_scalar_factor.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.octave_scalar_factor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:52:27 [INFO] [stdout] | [INFO] [stdout] 52 | octave_label: self.octave_label.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.octave_label` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/temperament.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | / pub(crate) fn new( [INFO] [stdout] 58 | | name: Option, [INFO] [stdout] 59 | | description: Option, [INFO] [stdout] 60 | | temperament_type: Option, [INFO] [stdout] ... | [INFO] [stdout] 66 | | intervals: Option>, [INFO] [stdout] 67 | | ) -> Temperament { [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | reference_note: self.reference_note.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.reference_note` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | tuning_hz: self.tuning_hz.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tuning_hz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | octave_scalar_factor: self.octave_scalar_factor.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.octave_scalar_factor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i64` which implements the `Copy` trait [INFO] [stdout] --> src/temperament.rs:52:27 [INFO] [stdout] | [INFO] [stdout] 52 | octave_label: self.octave_label.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.octave_label` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/temperament.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | / pub(crate) fn new( [INFO] [stdout] 58 | | name: Option, [INFO] [stdout] 59 | | description: Option, [INFO] [stdout] 60 | | temperament_type: Option, [INFO] [stdout] ... | [INFO] [stdout] 66 | | intervals: Option>, [INFO] [stdout] 67 | | ) -> Temperament { [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.86s [INFO] running `Command { std: "docker" "inspect" "fa2142b49285c0e898b72c6186807b11dc8c00f9b0070e920795eec639098b26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa2142b49285c0e898b72c6186807b11dc8c00f9b0070e920795eec639098b26", kill_on_drop: false }` [INFO] [stdout] fa2142b49285c0e898b72c6186807b11dc8c00f9b0070e920795eec639098b26