[INFO] cloning repository https://github.com/Kek5chen/kittymc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kek5chen/kittymc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKek5chen%2Fkittymc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKek5chen%2Fkittymc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3e69bfabb9c0e6076b8668c43e340301a7822592 [INFO] linting Kek5chen/kittymc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKek5chen%2Fkittymc" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Kek5chen/kittymc [INFO] finished tweaking git repo https://github.com/Kek5chen/kittymc [INFO] tweaked toml for git repo https://github.com/Kek5chen/kittymc written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Kek5chen/kittymc 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/Kek5chen/kittymc 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 rand_chacha v0.9.0-beta.1 [INFO] [stderr] Downloaded rand_core v0.9.0-beta.1 [INFO] [stderr] Downloaded ctrlc v3.4.5 [INFO] [stderr] Downloaded md5 v0.7.0 [INFO] [stderr] Downloaded semver v1.0.25 [INFO] [stderr] Downloaded rand v0.9.0-beta.1 [INFO] [stderr] Downloaded savefile v0.18.5 [INFO] [stderr] Downloaded zerocopy-derive v0.8.14 [INFO] [stderr] Downloaded wide v0.7.30 [INFO] [stderr] Downloaded thiserror-impl v2.0.8 [INFO] [stderr] Downloaded savefile-derive v0.18.5 [INFO] [stderr] Downloaded fastnbt v2.5.0 [INFO] [stderr] Downloaded cc v1.2.10 [INFO] [stderr] Downloaded zerocopy v0.8.14 [INFO] [stderr] Downloaded thiserror v2.0.8 [INFO] [stderr] Downloaded getrandom v0.3.0-rc.0 [INFO] [stderr] Downloaded integer-encoding v4.0.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] a48b554dc31174bccba6c78c4de52f242ad2e3e5480fe45e1f400fac9292fcd6 [INFO] running `Command { std: "docker" "start" "-a" "a48b554dc31174bccba6c78c4de52f242ad2e3e5480fe45e1f400fac9292fcd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a48b554dc31174bccba6c78c4de52f242ad2e3e5480fe45e1f400fac9292fcd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a48b554dc31174bccba6c78c4de52f242ad2e3e5480fe45e1f400fac9292fcd6", kill_on_drop: false }` [INFO] [stdout] a48b554dc31174bccba6c78c4de52f242ad2e3e5480fe45e1f400fac9292fcd6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] cdf11f082ea4ece9375efddc1bc3069a024badfe440e9010262f8409016a8572 [INFO] running `Command { std: "docker" "start" "-a" "cdf11f082ea4ece9375efddc1bc3069a024badfe440e9010262f8409016a8572", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling serde v1.0.216 [INFO] [stderr] Compiling semver v1.0.25 [INFO] [stderr] Compiling zerocopy v0.8.14 [INFO] [stderr] Checking bytemuck v1.21.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cc v1.2.10 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Compiling matrixmultiply v0.3.9 [INFO] [stderr] Compiling thiserror v2.0.8 [INFO] [stderr] Compiling serde_json v1.0.134 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking cesu8 v1.1.0 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking itoa v1.0.14 [INFO] [stderr] Checking miniz_oxide v0.8.2 [INFO] [stderr] Checking integer-encoding v4.0.2 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking pin-project-lite v0.2.15 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Compiling anyhow v1.0.94 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking bytes v1.9.0 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking wide v0.7.30 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking quote v1.0.37 [INFO] [stderr] Checking syn v2.0.90 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling savefile v0.18.5 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Checking simba v0.9.0 [INFO] [stderr] Checking getrandom v0.3.0-rc.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Checking rand_core v0.9.0-beta.1 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking ctrlc v3.4.5 [INFO] [stderr] Checking kittymc-macros v0.1.0 (/opt/rustwide/workdir/kittymc_macros) [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> kittymc_macros/src/lib.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | return Err(syn::Error::new_spanned( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 29 | | vname, [INFO] [stdout] 30 | | "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 | | ).to_compile_error().into()); [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 28 ~ return Err(syn::Error::new_spanned( [INFO] [stdout] 29 + vname, [INFO] [stdout] 30 + "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 ~ ).to_compile_error()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> kittymc_macros/src/lib.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let inner_field_ty = (&unnamed_fields.unnamed[0]).ty.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `unnamed_fields.unnamed[0]` [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: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> kittymc_macros/src/lib.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | return Err(syn::Error::new_spanned( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 29 | | vname, [INFO] [stdout] 30 | | "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 | | ).to_compile_error().into()); [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 28 ~ return Err(syn::Error::new_spanned( [INFO] [stdout] 29 + vname, [INFO] [stdout] 30 + "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 ~ ).to_compile_error()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> kittymc_macros/src/lib.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let inner_field_ty = (&unnamed_fields.unnamed[0]).ty.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `unnamed_fields.unnamed[0]` [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] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling serde_derive v1.0.216 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v2.0.8 [INFO] [stderr] Compiling typed-builder-macro v0.20.0 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Compiling savefile-derive v0.18.5 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> kittymc_macros/src/lib.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | return Err(syn::Error::new_spanned( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 29 | | vname, [INFO] [stdout] 30 | | "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 | | ).to_compile_error().into()); [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 28 ~ return Err(syn::Error::new_spanned( [INFO] [stdout] 29 + vname, [INFO] [stdout] 30 + "Packet Enum Variant MUST have an inner struct that does serialization and deserialization.", [INFO] [stdout] 31 ~ ).to_compile_error()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> kittymc_macros/src/lib.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let inner_field_ty = (&unnamed_fields.unnamed[0]).ty.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `unnamed_fields.unnamed[0]` [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] [stderr] Checking tokio v1.42.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking typed-builder v0.20.0 [INFO] [stderr] Checking nalgebra v0.33.2 [INFO] [stderr] Checking rand_chacha v0.9.0-beta.1 [INFO] [stderr] Checking rand v0.9.0-beta.1 [INFO] [stderr] Checking serde_bytes v0.11.15 [INFO] [stderr] Checking uuid v1.11.0 [INFO] [stderr] Checking fastnbt v2.5.0 [INFO] [stderr] Checking kittymc-lib v0.1.0 (/opt/rustwide/workdir/kittymc_lib) [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> kittymc_lib/src/subtypes/components.rs:132:30 [INFO] [stdout] | [INFO] [stdout] 132 | const CHAT_TRANSLATION_TAG: &'static str = "chat.type.text"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> kittymc_lib/src/utils.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | const COOL_PEOPLE: [&'static str; 3] = ["will_owo", "IT0NA31", "OnlyAfro"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> kittymc_lib/src/subtypes/components.rs:132:30 [INFO] [stdout] | [INFO] [stdout] 132 | const CHAT_TRANSLATION_TAG: &'static str = "chat.type.text"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> kittymc_lib/src/utils.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | const COOL_PEOPLE: [&'static str; 3] = ["will_owo", "IT0NA31", "OnlyAfro"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 163 | let b = b.max(4).min(MAX_PALETTE_BITS); [INFO] [stdout] | --------------------------------------- unnecessary `let` binding [INFO] [stdout] 164 | b [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] 163 ~ [INFO] [stdout] 164 ~ b.max(4).min(MAX_PALETTE_BITS) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:163:25 [INFO] [stdout] | [INFO] [stdout] 163 | let b = b.max(4).min(MAX_PALETTE_BITS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `b.clamp(4, MAX_PALETTE_BITS)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> kittymc_lib/src/packets/client/play/map_chunk_bulk_26.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / impl Default for MapChunkBulkPacket { [INFO] [stdout] 18 | | fn default() -> Self { [INFO] [stdout] 19 | | MapChunkBulkPacket { [INFO] [stdout] 20 | | sky_light_sent: false, [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 13 + #[derive(Default)] [INFO] [stdout] 14 | pub struct MapChunkBulkPacket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> kittymc_lib/src/packets/client/play/mod.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | SurvivalH = 0 | 8, [INFO] [stdout] | ^^^^^ help: consider reducing it to: `8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> kittymc_lib/src/packets/packet_serialization.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | if data.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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: redundant closure [INFO] [stdout] --> kittymc_lib/src/packets/packet_serialization.rs:348:22 [INFO] [stdout] | [INFO] [stdout] 348 | .map_err(|e| KittyMCError::ZlibDecompressionError(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `KittyMCError::ZlibDecompressionError` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 163 | let b = b.max(4).min(MAX_PALETTE_BITS); [INFO] [stdout] | --------------------------------------- unnecessary `let` binding [INFO] [stdout] 164 | b [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] 163 ~ [INFO] [stdout] 164 ~ b.max(4).min(MAX_PALETTE_BITS) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:163:25 [INFO] [stdout] | [INFO] [stdout] 163 | let b = b.max(4).min(MAX_PALETTE_BITS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `b.clamp(4, MAX_PALETTE_BITS)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> kittymc_lib/src/packets/mod.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let uncompressed_packet_data_len; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 79 | / uncompressed_packet_data_len = match is_packet_compressed { [INFO] [stdout] 80 | | true => uncompressed_data_len + uncompressed_data_len_len, [INFO] [stdout] 81 | | false => compressed_packet_data_len - uncompressed_data_len_len, [INFO] [stdout] 82 | | }; [INFO] [stdout] | |_________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `uncompressed_packet_data_len` here [INFO] [stdout] | [INFO] [stdout] 65 ~ [INFO] [stdout] 66 | let uncompressed_data_len; [INFO] [stdout] ... [INFO] [stdout] 78 | [INFO] [stdout] 79 ~ let uncompressed_packet_data_len = match is_packet_compressed { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_lib/src/packets/mod.rs:87:56 [INFO] [stdout] | [INFO] [stdout] 87 | let (size, owned_data) = decompress_packet(&rawr_data)?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `rawr_data` [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 `impl` can be derived [INFO] [stdout] --> kittymc_lib/src/packets/client/play/map_chunk_bulk_26.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / impl Default for MapChunkBulkPacket { [INFO] [stdout] 18 | | fn default() -> Self { [INFO] [stdout] 19 | | MapChunkBulkPacket { [INFO] [stdout] 20 | | sky_light_sent: false, [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 13 + #[derive(Default)] [INFO] [stdout] 14 | pub struct MapChunkBulkPacket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> kittymc_lib/src/packets/client/play/mod.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | SurvivalH = 0 | 8, [INFO] [stdout] | ^^^^^ help: consider reducing it to: `8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_lib/src/subtypes/metadata.rs:157:43 [INFO] [stdout] | [INFO] [stdout] 157 | self.meta_state.write_to_metadata(&mut meta_data, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:197:39 [INFO] [stdout] | [INFO] [stdout] 197 | self.entity.write_to_metadata(&mut meta_data); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:198:43 [INFO] [stdout] | [INFO] [stdout] 198 | self.hand_state.write_to_metadata(&mut meta_data, 6); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:239:39 [INFO] [stdout] | [INFO] [stdout] 239 | self.living.write_to_metadata(&mut meta_data); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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 one [INFO] [stdout] --> kittymc_lib/src/packets/packet_serialization.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | if data.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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: redundant closure [INFO] [stdout] --> kittymc_lib/src/packets/packet_serialization.rs:348:22 [INFO] [stdout] | [INFO] [stdout] 348 | .map_err(|e| KittyMCError::ZlibDecompressionError(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `KittyMCError::ZlibDecompressionError` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_lib/src/subtypes/mod.rs:172:48 [INFO] [stdout] | [INFO] [stdout] 172 | let center_chunk = ChunkPosition::from(center.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*center` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_lib/src/utils.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if is_cool(&name) { [INFO] [stdout] | ^^^^^ help: change this to: `name` [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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:342:23 [INFO] [stdout] | [INFO] [stdout] 342 | pub fn new(chunk: &Chunk, x: i32, z: i32) -> ChunkDataPacket { [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 342 | pub fn new(chunk: &Chunk, x: i32, z: i32) -> ChunkDataPacket<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> kittymc_lib/src/packets/mod.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let uncompressed_packet_data_len; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 79 | / uncompressed_packet_data_len = match is_packet_compressed { [INFO] [stdout] 80 | | true => uncompressed_data_len + uncompressed_data_len_len, [INFO] [stdout] 81 | | false => compressed_packet_data_len - uncompressed_data_len_len, [INFO] [stdout] 82 | | }; [INFO] [stdout] | |_________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `uncompressed_packet_data_len` here [INFO] [stdout] | [INFO] [stdout] 65 ~ [INFO] [stdout] 66 | let uncompressed_data_len; [INFO] [stdout] ... [INFO] [stdout] 78 | [INFO] [stdout] 79 ~ let uncompressed_packet_data_len = match is_packet_compressed { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_lib/src/packets/mod.rs:87:56 [INFO] [stdout] | [INFO] [stdout] 87 | let (size, owned_data) = decompress_packet(&rawr_data)?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `rawr_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:157:43 [INFO] [stdout] | [INFO] [stdout] 157 | self.meta_state.write_to_metadata(&mut meta_data, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:197:39 [INFO] [stdout] | [INFO] [stdout] 197 | self.entity.write_to_metadata(&mut meta_data); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:198:43 [INFO] [stdout] | [INFO] [stdout] 198 | self.hand_state.write_to_metadata(&mut meta_data, 6); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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] --> kittymc_lib/src/subtypes/metadata.rs:239:39 [INFO] [stdout] | [INFO] [stdout] 239 | self.living.write_to_metadata(&mut meta_data); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `meta_data` [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: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_lib/src/subtypes/mod.rs:172:48 [INFO] [stdout] | [INFO] [stdout] 172 | let center_chunk = ChunkPosition::from(center.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*center` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_lib/src/utils.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if is_cool(&name) { [INFO] [stdout] | ^^^^^ help: change this to: `name` [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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> kittymc_lib/src/packets/client/play/chunk_data_20.rs:342:23 [INFO] [stdout] | [INFO] [stdout] 342 | pub fn new(chunk: &Chunk, x: i32, z: i32) -> ChunkDataPacket { [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 342 | pub fn new(chunk: &Chunk, x: i32, z: i32) -> ChunkDataPacket<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking kittymc-server v0.1.0 (/opt/rustwide/workdir/kittymc_server) [INFO] [stderr] Checking kittymc-proxy v0.1.0 (/opt/rustwide/workdir/kittymc_proxy) [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> kittymc_lib/tests/packet_tests/client/play.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] = note: `#[warn(clippy::zero_prefixed_literal)]` on by default [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 9 - assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] 9 + assert_eq!(&packet, &[3, 03, 0x80, 02]); [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[0o3, 03, 0x80, 02]); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> kittymc_lib/tests/packet_tests/client/play.rs:9:31 [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 9 - assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] 9 + assert_eq!(&packet, &[03, 3, 0x80, 02]); [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[03, 0o3, 0x80, 02]); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> kittymc_lib/tests/packet_tests/client/play.rs:9:41 [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 9 - assert_eq!(&packet, &[03, 03, 0x80, 02]); [INFO] [stdout] 9 + assert_eq!(&packet, &[03, 03, 0x80, 2]); [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(&packet, &[03, 03, 0x80, 0o2]); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_proxy/src/main.rs:16:56 [INFO] [stdout] | [INFO] [stdout] 16 | let result = Packet::deserialize(State::Handshake, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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 destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> kittymc_proxy/src/main.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / match packet { [INFO] [stdout] 20 | | Packet::Handshake(ref mut handshake) => { [INFO] [stdout] 21 | | handshake.server_address = "gommehd.net".to_string(); [INFO] [stdout] 22 | | let serialized = handshake.serialize(); [INFO] [stdout] ... | [INFO] [stdout] 27 | | _ => (), [INFO] [stdout] 28 | | } [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] 19 ~ if let Packet::Handshake(ref mut handshake) = packet { [INFO] [stdout] 20 + handshake.server_address = "gommehd.net".to_string(); [INFO] [stdout] 21 + let serialized = handshake.serialize(); [INFO] [stdout] 22 + let serialized_len = serialized.len(); [INFO] [stdout] 23 + data.splice(..n, serialized); [INFO] [stdout] 24 + n = serialized_len; [INFO] [stdout] 25 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_proxy/src/main.rs:33:52 [INFO] [stdout] | [INFO] [stdout] 33 | let result = Packet::deserialize(State::Login, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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 match could be replaced by its body itself [INFO] [stdout] --> kittymc_proxy/src/main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / match packet { [INFO] [stdout] 37 | | _ => (), [INFO] [stdout] 38 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_proxy/src/main.rs:49:56 [INFO] [stdout] | [INFO] [stdout] 49 | let result = Packet::deserialize(State::Handshake, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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] --> kittymc_proxy/src/main.rs:55:52 [INFO] [stdout] | [INFO] [stdout] 55 | let result = Packet::deserialize(State::Login, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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] --> kittymc_proxy/src/main.rs:16:56 [INFO] [stdout] | [INFO] [stdout] 16 | let result = Packet::deserialize(State::Handshake, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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 destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> kittymc_proxy/src/main.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / match packet { [INFO] [stdout] 20 | | Packet::Handshake(ref mut handshake) => { [INFO] [stdout] 21 | | handshake.server_address = "gommehd.net".to_string(); [INFO] [stdout] 22 | | let serialized = handshake.serialize(); [INFO] [stdout] ... | [INFO] [stdout] 27 | | _ => (), [INFO] [stdout] 28 | | } [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] 19 ~ if let Packet::Handshake(ref mut handshake) = packet { [INFO] [stdout] 20 + handshake.server_address = "gommehd.net".to_string(); [INFO] [stdout] 21 + let serialized = handshake.serialize(); [INFO] [stdout] 22 + let serialized_len = serialized.len(); [INFO] [stdout] 23 + data.splice(..n, serialized); [INFO] [stdout] 24 + n = serialized_len; [INFO] [stdout] 25 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_proxy/src/main.rs:33:52 [INFO] [stdout] | [INFO] [stdout] 33 | let result = Packet::deserialize(State::Login, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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 match could be replaced by its body itself [INFO] [stdout] --> kittymc_proxy/src/main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / match packet { [INFO] [stdout] 37 | | _ => (), [INFO] [stdout] 38 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_proxy/src/main.rs:49:56 [INFO] [stdout] | [INFO] [stdout] 49 | let result = Packet::deserialize(State::Handshake, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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] --> kittymc_proxy/src/main.rs:55:52 [INFO] [stdout] | [INFO] [stdout] 55 | let result = Packet::deserialize(State::Login, &data, &NO_COMPRESSION); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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 boolean expression can be simplified [INFO] [stdout] --> kittymc_server/src/server.rs:203:24 [INFO] [stdout] | [INFO] [stdout] 203 | if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | ________________________^ [INFO] [stdout] 204 | | && game_mode == GameMode::Creative [INFO] [stdout] 205 | | || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 | | && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 | | && is_cool [INFO] [stdout] | |__________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 - && is_cool [INFO] [stdout] 203 + if !(digging.status != PlayerDiggingStatus::StartedDigging || !is_cool || game_mode != GameMode::Creative && game_mode == GameMode::Adventure) [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 - && is_cool [INFO] [stdout] 203 + if (game_mode != GameMode::Adventure || game_mode == GameMode::Creative) && is_cool && digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> kittymc_server/src/server.rs:203:24 [INFO] [stdout] | [INFO] [stdout] 203 | if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | ________________________^ [INFO] [stdout] 204 | | && game_mode == GameMode::Creative [INFO] [stdout] 205 | | || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 | | && game_mode != GameMode::Adventure)) [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 203 + if !(digging.status != PlayerDiggingStatus::StartedDigging || game_mode != GameMode::Creative && game_mode == GameMode::Adventure) [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 203 + if (game_mode != GameMode::Adventure || game_mode == GameMode::Creative) && digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> kittymc_server/src/server.rs:203:24 [INFO] [stdout] | [INFO] [stdout] 203 | if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | ________________________^ [INFO] [stdout] 204 | | && game_mode == GameMode::Creative [INFO] [stdout] 205 | | || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 | | && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 | | && is_cool [INFO] [stdout] | |__________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 - && is_cool [INFO] [stdout] 203 + if !(digging.status != PlayerDiggingStatus::StartedDigging || !is_cool || game_mode != GameMode::Creative && game_mode == GameMode::Adventure) [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 207 - && is_cool [INFO] [stdout] 203 + if (game_mode != GameMode::Adventure || game_mode == GameMode::Creative) && is_cool && digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> kittymc_server/src/server.rs:203:24 [INFO] [stdout] | [INFO] [stdout] 203 | if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | ________________________^ [INFO] [stdout] 204 | | && game_mode == GameMode::Creative [INFO] [stdout] 205 | | || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 | | && game_mode != GameMode::Adventure)) [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 203 + if !(digging.status != PlayerDiggingStatus::StartedDigging || game_mode != GameMode::Creative && game_mode == GameMode::Adventure) [INFO] [stdout] | [INFO] [stdout] 203 - if (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 204 - && game_mode == GameMode::Creative [INFO] [stdout] 205 - || (digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] 206 - && game_mode != GameMode::Adventure)) [INFO] [stdout] 203 + if (game_mode != GameMode::Adventure || game_mode == GameMode::Creative) && digging.status == PlayerDiggingStatus::StartedDigging [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_server/src/server.rs:140:59 [INFO] [stdout] | [INFO] [stdout] 140 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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] --> kittymc_server/src/server.rs:140:59 [INFO] [stdout] | [INFO] [stdout] 140 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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] --> kittymc_server/src/server.rs:156:59 [INFO] [stdout] | [INFO] [stdout] 156 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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] --> kittymc_server/src/server.rs:165:59 [INFO] [stdout] | [INFO] [stdout] 165 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> kittymc_server/src/server.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | let name = self.get_name_from_uuid(uuid).unwrap_or_else(|| "UNNAMED"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 171 - let name = self.get_name_from_uuid(uuid).unwrap_or_else(|| "UNNAMED"); [INFO] [stdout] 171 + let name = self.get_name_from_uuid(uuid).unwrap_or("UNNAMED"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_server/src/server.rs:156:59 [INFO] [stdout] | [INFO] [stdout] 156 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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] --> kittymc_server/src/server.rs:165:59 [INFO] [stdout] | [INFO] [stdout] 165 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> kittymc_server/src/server.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | let name = self.get_name_from_uuid(uuid).unwrap_or_else(|| "UNNAMED"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 171 - let name = self.get_name_from_uuid(uuid).unwrap_or_else(|| "UNNAMED"); [INFO] [stdout] 171 + let name = self.get_name_from_uuid(uuid).unwrap_or("UNNAMED"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:209:35 [INFO] [stdout] | [INFO] [stdout] 209 | let loc = digging.location.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `digging.location` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:214:59 [INFO] [stdout] | [INFO] [stdout] 214 | ... &BlockChangePacket::new_empty(loc.clone()), [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `loc` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:209:35 [INFO] [stdout] | [INFO] [stdout] 209 | let loc = digging.location.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `digging.location` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:214:59 [INFO] [stdout] | [INFO] [stdout] 214 | ... &BlockChangePacket::new_empty(loc.clone()), [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `loc` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_server/src/server.rs:275:59 [INFO] [stdout] | [INFO] [stdout] 275 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> kittymc_server/src/server.rs:287:79 [INFO] [stdout] | [INFO] [stdout] 287 | self.send_to_all(Some(client), &EntityMetadataPacket::new(player_eid as i32, state))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `player_eid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> kittymc_server/src/server.rs:275:59 [INFO] [stdout] | [INFO] [stdout] 275 | let player = self.players.get_mut(&uuid).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `uuid` [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: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> kittymc_server/src/server.rs:287:79 [INFO] [stdout] | [INFO] [stdout] 287 | self.send_to_all(Some(client), &EntityMetadataPacket::new(player_eid as i32, state))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `player_eid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:353:27 [INFO] [stdout] | [INFO] [stdout] 353 | current_rot = player.direction().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.direction()` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:354:24 [INFO] [stdout] | [INFO] [stdout] 354 | last_rot = player.last_direction().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.last_direction()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:405:32 [INFO] [stdout] | [INFO] [stdout] 405 | actions: vec![(player.uuid().clone(), PlayerListItemAction::RemovePlayer)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:415:30 [INFO] [stdout] | [INFO] [stdout] 415 | player_uuid: player.uuid().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:431:19 [INFO] [stdout] | [INFO] [stdout] 431 | uuid: success.uuid.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `success.uuid` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:353:27 [INFO] [stdout] | [INFO] [stdout] 353 | current_rot = player.direction().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.direction()` [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 `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:354:24 [INFO] [stdout] | [INFO] [stdout] 354 | last_rot = player.last_direction().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.last_direction()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:441:20 [INFO] [stdout] | [INFO] [stdout] 441 | let uuid = player.uuid().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:405:32 [INFO] [stdout] | [INFO] [stdout] 405 | actions: vec![(player.uuid().clone(), PlayerListItemAction::RemovePlayer)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:415:30 [INFO] [stdout] | [INFO] [stdout] 415 | player_uuid: player.uuid().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:443:25 [INFO] [stdout] | [INFO] [stdout] 443 | client.set_uuid(uuid.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:431:19 [INFO] [stdout] | [INFO] [stdout] 431 | uuid: success.uuid.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `success.uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:441:20 [INFO] [stdout] | [INFO] [stdout] 441 | let uuid = player.uuid().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*player.uuid()` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:443:25 [INFO] [stdout] | [INFO] [stdout] 443 | client.set_uuid(uuid.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:455:29 [INFO] [stdout] | [INFO] [stdout] 455 | self.players.insert(uuid.clone(), player); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:455:29 [INFO] [stdout] | [INFO] [stdout] 455 | self.players.insert(uuid.clone(), player); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:537:62 [INFO] [stdout] | [INFO] [stdout] 537 | self.clients.write().unwrap().insert(uuid.clone(), client); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:537:62 [INFO] [stdout] | [INFO] [stdout] 537 | self.clients.write().unwrap().insert(uuid.clone(), client); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `uuid` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:550:26 [INFO] [stdout] | [INFO] [stdout] 550 | .map(|c| c.0.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*c.0` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/server.rs:550:26 [INFO] [stdout] | [INFO] [stdout] 550 | .map(|c| c.0.clone()) [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*c.0` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> kittymc_server/src/inventory.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | / if !self.slots.contains_key(&slot_num) { [INFO] [stdout] 44 | | let add = count.min(64); [INFO] [stdout] 45 | | self.slots.insert(slot_num, ItemStack { item_id, count: add, damage: 0 }); [INFO] [stdout] 46 | | count -= add; [INFO] [stdout] ... | [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.slots.entry(slot_num) { [INFO] [stdout] 44 + let add = count.min(64); [INFO] [stdout] 45 + e.insert(ItemStack { item_id, count: add, damage: 0 }); [INFO] [stdout] 46 + count -= add; [INFO] [stdout] 47 + if count == 0 { [INFO] [stdout] 48 + return 0; [INFO] [stdout] 49 + } [INFO] [stdout] 50 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> kittymc_server/src/inventory.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | / if !self.slots.contains_key(&slot_num) { [INFO] [stdout] 44 | | let add = count.min(64); [INFO] [stdout] 45 | | self.slots.insert(slot_num, ItemStack { item_id, count: add, damage: 0 }); [INFO] [stdout] 46 | | count -= add; [INFO] [stdout] ... | [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.slots.entry(slot_num) { [INFO] [stdout] 44 + let add = count.min(64); [INFO] [stdout] 45 + e.insert(ItemStack { item_id, count: add, damage: 0 }); [INFO] [stdout] 46 + count -= add; [INFO] [stdout] 47 + if count == 0 { [INFO] [stdout] 48 + return 0; [INFO] [stdout] 49 + } [INFO] [stdout] 50 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> kittymc_server/src/inventory.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / self.slots [INFO] [stdout] 83 | | .iter() [INFO] [stdout] 84 | | .filter_map(|(_, slot)| { [INFO] [stdout] 85 | | if slot.item_id == item_id { [INFO] [stdout] ... | [INFO] [stdout] 90 | | }) [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 82 ~ self.slots.values().filter_map(|slot| { [INFO] [stdout] 83 + if slot.item_id == item_id { [INFO] [stdout] 84 + Some(slot.count as u32) [INFO] [stdout] 85 + } else { [INFO] [stdout] 86 + None [INFO] [stdout] 87 + } [INFO] [stdout] 88 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> kittymc_server/src/inventory.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / self.slots [INFO] [stdout] 83 | | .iter() [INFO] [stdout] 84 | | .filter_map(|(_, slot)| { [INFO] [stdout] 85 | | if slot.item_id == item_id { [INFO] [stdout] ... | [INFO] [stdout] 90 | | }) [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 82 ~ self.slots.values().filter_map(|slot| { [INFO] [stdout] 83 + if slot.item_id == item_id { [INFO] [stdout] 84 + Some(slot.count as u32) [INFO] [stdout] 85 + } else { [INFO] [stdout] 86 + None [INFO] [stdout] 87 + } [INFO] [stdout] 88 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HIGH` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | HIGH, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `High` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `MID` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | MID, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Mid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LOW` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | LOW, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [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] --> kittymc_server/src/chunking/chunk_manager.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | / match self.get_chunk_at(&chunk_pos) { [INFO] [stdout] 114 | | Some(chunk) => return Some(chunk), [INFO] [stdout] 115 | | _ => {} [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(chunk) = self.get_chunk_at(&chunk_pos) { return Some(chunk) }` [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] [INFO] [stdout] [INFO] [stdout] warning: name `HIGH` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | HIGH, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `High` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `MID` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | MID, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Mid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LOW` contains a capitalized acronym [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | LOW, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [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] --> kittymc_server/src/chunking/chunk_manager.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | / match self.request_chunk(&chunk_pos) { [INFO] [stdout] 183 | | Some(chunk) => loaded_chunks.push((chunk_pos.clone(), chunk)), [INFO] [stdout] 184 | | _ => {} [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(chunk) = self.request_chunk(&chunk_pos) { loaded_chunks.push((chunk_pos.clone(), chunk)) }` [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: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:200:55 [INFO] [stdout] | [INFO] [stdout] 200 | .ok_or_else(|| KittyMCError::InvalidChunk(loc.clone()))?; [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*loc` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | / match self.get_chunk_at(&chunk_pos) { [INFO] [stdout] 114 | | Some(chunk) => return Some(chunk), [INFO] [stdout] 115 | | _ => {} [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(chunk) = self.get_chunk_at(&chunk_pos) { return Some(chunk) }` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> kittymc_server/src/chunking/chunk_generator.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | return; [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] 49 - { [INFO] [stdout] 50 - return; [INFO] [stdout] 49 + { [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] --> kittymc_server/src/chunking/chunk_manager.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | / match self.request_chunk(&chunk_pos) { [INFO] [stdout] 183 | | Some(chunk) => loaded_chunks.push((chunk_pos.clone(), chunk)), [INFO] [stdout] 184 | | _ => {} [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(chunk) = self.request_chunk(&chunk_pos) { loaded_chunks.push((chunk_pos.clone(), chunk)) }` [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> kittymc_server/src/chunking/chunk_generator.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | Ok(Chunk::load_from(file_path)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 96 - Ok(Chunk::load_from(file_path)?) [INFO] [stdout] 96 + Chunk::load_from(file_path) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Matrix, Const<1>, ArrayStorage>` which implements the `Copy` trait [INFO] [stdout] --> kittymc_server/src/chunking/chunk_manager.rs:200:55 [INFO] [stdout] | [INFO] [stdout] 200 | .ok_or_else(|| KittyMCError::InvalidChunk(loc.clone()))?; [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*loc` [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: unneeded `return` statement [INFO] [stdout] --> kittymc_server/src/chunking/chunk_generator.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | return; [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] 49 - { [INFO] [stdout] 50 - return; [INFO] [stdout] 49 + { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> kittymc_server/src/chunking/chunk_generator.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | Ok(Chunk::load_from(file_path)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 96 - Ok(Chunk::load_from(file_path)?) [INFO] [stdout] 96 + Chunk::load_from(file_path) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.64s [INFO] running `Command { std: "docker" "inspect" "cdf11f082ea4ece9375efddc1bc3069a024badfe440e9010262f8409016a8572", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cdf11f082ea4ece9375efddc1bc3069a024badfe440e9010262f8409016a8572", kill_on_drop: false }` [INFO] [stdout] cdf11f082ea4ece9375efddc1bc3069a024badfe440e9010262f8409016a8572