[INFO] cloning repository https://github.com/BurritoBandit28/Memory-Game [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BurritoBandit28/Memory-Game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBurritoBandit28%2FMemory-Game", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBurritoBandit28%2FMemory-Game'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e9b3fddb97b8280af2186da0fbfac1c8cbba3f92 [INFO] linting BurritoBandit28/Memory-Game against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBurritoBandit28%2FMemory-Game" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/BurritoBandit28/Memory-Game [INFO] finished tweaking git repo https://github.com/BurritoBandit28/Memory-Game [INFO] tweaked toml for git repo https://github.com/BurritoBandit28/Memory-Game written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/BurritoBandit28/Memory-Game 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/BurritoBandit28/Memory-Game 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 thread-id v4.2.2 [INFO] [stderr] Downloaded uuid-macro-internal v1.17.0 [INFO] [stderr] Downloaded unsafe-any-ors v1.0.0 [INFO] [stderr] Downloaded destructure_traitobject v0.2.0 [INFO] [stderr] Downloaded log-mdc v0.1.0 [INFO] [stderr] Downloaded typemap-ors v1.0.0 [INFO] [stderr] Downloaded image-webp v0.2.2 [INFO] [stderr] Downloaded log4rs v1.3.0 [INFO] [stderr] Downloaded zune-jpeg v0.4.17 [INFO] [stderr] Downloaded sdl2 v0.36.0 [INFO] [stderr] Downloaded gjson v0.8.1 [INFO] [stderr] Downloaded sdl2-sys v0.36.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 8c83c45ab6031ac2a48c040e96f246d4c4e375bde18642ed8c6e982ef6c943a1 [INFO] running `Command { std: "docker" "start" "-a" "8c83c45ab6031ac2a48c040e96f246d4c4e375bde18642ed8c6e982ef6c943a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8c83c45ab6031ac2a48c040e96f246d4c4e375bde18642ed8c6e982ef6c943a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c83c45ab6031ac2a48c040e96f246d4c4e375bde18642ed8c6e982ef6c943a1", kill_on_drop: false }` [INFO] [stdout] 8c83c45ab6031ac2a48c040e96f246d4c4e375bde18642ed8c6e982ef6c943a1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 632097e03e15ae21cbc8285b05f122e0a201bf9bd436ca7682c5142ff53a5f3d [INFO] running `Command { std: "docker" "start" "-a" "632097e03e15ae21cbc8285b05f122e0a201bf9bd436ca7682c5142ff53a5f3d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Compiling sdl2-sys v0.36.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking imgref v1.11.0 [INFO] [stderr] Checking destructure_traitobject v0.2.0 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Checking alsa v0.9.1 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking unsafe-any-ors v1.0.0 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking ogg v0.8.0 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking avif-serialize v0.8.3 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking jpeg-decoder v0.3.1 [INFO] [stderr] Checking bit_field v0.10.2 [INFO] [stderr] Checking lebe v0.5.2 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling sdl2 v0.36.0 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking dasp_sample v0.11.0 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking rgb v0.8.50 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking gif v0.13.1 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking image-webp v0.2.2 [INFO] [stderr] Checking zune-jpeg v0.4.17 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking typemap-ors v1.0.0 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking thread-id v4.2.2 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking claxon v0.4.3 [INFO] [stderr] Checking hound v3.5.1 [INFO] [stderr] Checking humantime v2.2.0 [INFO] [stderr] Checking log-mdc v0.1.0 [INFO] [stderr] Checking gjson v0.8.1 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling profiling-procmacros v1.0.16 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking profiling v1.0.16 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling uuid-macro-internal v1.17.0 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking symphonia-core v0.5.4 [INFO] [stderr] Checking av1-grain v0.2.4 [INFO] [stderr] Checking rav1e v0.7.1 [INFO] [stderr] Checking log4rs v1.3.0 [INFO] [stderr] Checking symphonia-metadata v0.5.4 [INFO] [stderr] Checking symphonia-bundle-mp3 v0.5.4 [INFO] [stderr] Checking symphonia v0.5.4 [INFO] [stderr] Checking rodio v0.20.1 [INFO] [stderr] Checking ravif v0.11.12 [INFO] [stderr] Checking image v0.25.6 [INFO] [stderr] Checking Memory-Game v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::cmp::PartialEq` [INFO] [stdout] --> src/entities/card_entity.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::PartialEq; [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: `log::info` [INFO] [stdout] --> src/entities/card_entity.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::render::Texture` [INFO] [stdout] --> src/entities/card_entity.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use sdl2::render::Texture; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Entity` [INFO] [stdout] --> src/entities.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::{Entity}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Pointer` [INFO] [stdout] --> src/entity.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Pointer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/entity.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/entity.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::EventPollIterator` [INFO] [stdout] --> src/entity.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::event::EventPollIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::rect::Rect` [INFO] [stdout] --> src/entity.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use sdl2::rect::Rect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/entity.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/game.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/game.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/game.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/game.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/game.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Month` [INFO] [stdout] --> src/game.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use chrono::Month; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `OutputStreamHandle`, `OutputStream`, and `source::Source` [INFO] [stdout] --> src/game.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use rodio::{Decoder, OutputStream, source::Source, OutputStreamHandle}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::bigint::U32Digits` [INFO] [stdout] --> src/game.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use num::bigint::U32Digits; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::C` [INFO] [stdout] --> src/game.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use sdl2::keyboard::Keycode::C; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TileGraph` [INFO] [stdout] --> src/game.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::level::{Level, TileGraph}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `entities` and `sound` [INFO] [stdout] --> src/game.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::{entities, render, sound}; [INFO] [stdout] | ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Turn::Player2` [INFO] [stdout] --> src/game.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::game::Turn::Player2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TileSize` [INFO] [stdout] --> src/game.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::tile::{Tile, TileSize}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Alignment` [INFO] [stdout] --> src/game.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::widget::{Alignment, Widget}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/game.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `Hasher` [INFO] [stdout] --> src/render.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Copied` [INFO] [stdout] --> src/render.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::iter::Copied; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Scancode::I` [INFO] [stdout] --> src/render.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use sdl2::keyboard::Scancode::I; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::libc::stat` [INFO] [stdout] --> src/render.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use sdl2::libc::stat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::pixels::Color` [INFO] [stdout] --> src/render.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use sdl2::pixels::Color; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render` [INFO] [stdout] --> src/render.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::render; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::SystemTime` [INFO] [stdout] --> src/utils.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::SystemTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `Metadata`, and `Record` [INFO] [stdout] --> src/utils.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{Level, LevelFilter, Metadata, Record}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sqrt` [INFO] [stdout] --> src/utils.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use num::integer::{sqrt, Roots}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::pow` [INFO] [stdout] --> src/utils.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use num::pow; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::PartialEq` [INFO] [stdout] --> src/level.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::PartialEq; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `image::imageops::tile` [INFO] [stdout] --> src/level.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use image::imageops::tile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Canvas` [INFO] [stdout] --> src/level.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::render::{Canvas, Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/level.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::resource_location::ResourceLocation` [INFO] [stdout] --> src/level.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::resource_location::ResourceLocation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::get_dist` [INFO] [stdout] --> src/level.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::utils::get_dist; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Scancode::S` [INFO] [stdout] --> src/tile.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Scancode::S; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Canvas` [INFO] [stdout] --> src/tile.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::render::{Canvas, Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/play_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/play_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/widgets/enum_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/enum_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::err_widget::ErrWidget` [INFO] [stdout] --> src/widgets/enum_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::widgets::err_widget::ErrWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/err_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/widgets/err_widget.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{error, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::clamp` [INFO] [stdout] --> src/widgets/score_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use num::clamp; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/widgets/score_widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/widgets/score_widget.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/widgets/score_widget.rs:96:109 [INFO] [stdout] | [INFO] [stdout] 96 | d_ass.resource_location = ResourceLocation::new("game", "gui/widgets/debug_background.png");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/quit_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/quit_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/quit_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/quit_widget.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::current` [INFO] [stdout] --> src/widgets/player_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::thread::current; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/play_again_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/play_again_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::PartialEq` [INFO] [stdout] --> src/entities/card_entity.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::PartialEq; [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: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/crown_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/entities/card_entity.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/crown_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/crown_widget.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::render::Texture` [INFO] [stdout] --> src/entities/card_entity.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use sdl2::render::Texture; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/crown_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Entity` [INFO] [stdout] --> src/entities.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::{Entity}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Pointer` [INFO] [stdout] --> src/entity.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Pointer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/entity.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/entity.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::EventPollIterator` [INFO] [stdout] --> src/entity.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::event::EventPollIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::rect::Rect` [INFO] [stdout] --> src/entity.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use sdl2::rect::Rect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/entity.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widget::Widget` [INFO] [stdout] --> src/widgets.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::widget::Widget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/screens/hud_screen.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/screens/hud_screen.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture` and `WindowCanvas` [INFO] [stdout] --> src/screens/hud_screen.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::render::{Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/screens/hud_screen.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::score_widget::ScoreWidget` [INFO] [stdout] --> src/screens/hud_screen.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::widgets::score_widget::ScoreWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/game.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/screens.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/game.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/sound.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/sound.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `once_cell::sync::OnceCell` [INFO] [stdout] --> src/sound.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use once_cell::sync::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/game.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rodio::cpal::Stream` [INFO] [stdout] --> src/sound.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use rodio::cpal::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/game.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/game.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `env` [INFO] [stdout] --> src/main.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | use std::{env, fs}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Month` [INFO] [stdout] --> src/game.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use chrono::Month; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::main_menu_screen` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::screens::main_menu_screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::clamp` [INFO] [stdout] --> src/main.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use num::clamp; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode` [INFO] [stdout] --> src/main.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | use sdl2::keyboard::Keycode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gjson::Value` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use gjson::Value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event::KeyDown` [INFO] [stdout] --> src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use sdl2::event::Event::KeyDown; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CardEntity` [INFO] [stdout] --> src/main.rs:40:42 [INFO] [stdout] | [INFO] [stdout] 40 | use crate::entities::card_entity::{Card, CardEntity}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `OutputStreamHandle`, `OutputStream`, and `source::Source` [INFO] [stdout] --> src/game.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use rodio::{Decoder, OutputStream, source::Source, OutputStreamHandle}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::bigint::U32Digits` [INFO] [stdout] --> src/game.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use num::bigint::U32Digits; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::C` [INFO] [stdout] --> src/game.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use sdl2::keyboard::Keycode::C; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TileGraph` [INFO] [stdout] --> src/game.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::level::{Level, TileGraph}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `entities` and `sound` [INFO] [stdout] --> src/game.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::{entities, render, sound}; [INFO] [stdout] | ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Turn::Player2` [INFO] [stdout] --> src/game.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::game::Turn::Player2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TileSize` [INFO] [stdout] --> src/game.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::tile::{Tile, TileSize}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Alignment` [INFO] [stdout] --> src/game.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::widget::{Alignment, Widget}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/game.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `Hasher` [INFO] [stdout] --> src/render.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Copied` [INFO] [stdout] --> src/render.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::iter::Copied; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Scancode::I` [INFO] [stdout] --> src/render.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use sdl2::keyboard::Scancode::I; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::libc::stat` [INFO] [stdout] --> src/render.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use sdl2::libc::stat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::level::Level` [INFO] [stdout] --> src/main.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | use crate::level::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render::AssetData` [INFO] [stdout] --> src/main.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | use crate::render::AssetData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::pixels::Color` [INFO] [stdout] --> src/render.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use sdl2::pixels::Color; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widget::Alignment` [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | use crate::widget::Alignment; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render` [INFO] [stdout] --> src/render.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::render; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:374:5 [INFO] [stdout] | [INFO] [stdout] 374 | / /// Delta refers to the time taken between showing two frames. This value is often used for physics related operations, as th... [INFO] [stdout] 375 | | /// You can see that happening in [`Entity::physics`] [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] 376 | // initiate delta [INFO] [stdout] 377 | let mut delta: f32 = 0.0; [INFO] [stdout] | ------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::SystemTime` [INFO] [stdout] --> src/utils.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::SystemTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `Metadata`, and `Record` [INFO] [stdout] --> src/utils.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{Level, LevelFilter, Metadata, Record}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sqrt` [INFO] [stdout] --> src/utils.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use num::integer::{sqrt, Roots}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::pow` [INFO] [stdout] --> src/utils.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use num::pow; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::PartialEq` [INFO] [stdout] --> src/level.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::PartialEq; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `image::imageops::tile` [INFO] [stdout] --> src/level.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use image::imageops::tile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Canvas` [INFO] [stdout] --> src/level.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::render::{Canvas, Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/level.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::resource_location::ResourceLocation` [INFO] [stdout] --> src/level.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::resource_location::ResourceLocation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::get_dist` [INFO] [stdout] --> src/level.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::utils::get_dist; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Scancode::S` [INFO] [stdout] --> src/tile.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Scancode::S; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Canvas` [INFO] [stdout] --> src/tile.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use sdl2::render::{Canvas, Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/play_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/play_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/widgets/enum_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/enum_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::err_widget::ErrWidget` [INFO] [stdout] --> src/widgets/enum_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::widgets::err_widget::ErrWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/err_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/widgets/err_widget.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{error, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::clamp` [INFO] [stdout] --> src/widgets/score_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use num::clamp; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/widgets/score_widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/widgets/score_widget.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/widgets/score_widget.rs:96:109 [INFO] [stdout] | [INFO] [stdout] 96 | d_ass.resource_location = ResourceLocation::new("game", "gui/widgets/debug_background.png");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/quit_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/quit_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/quit_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/quit_widget.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::current` [INFO] [stdout] --> src/widgets/player_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::thread::current; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/play_again_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/play_again_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/widgets/crown_widget.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode::N` [INFO] [stdout] --> src/widgets/crown_widget.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::keyboard::Keycode::N; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/widgets/crown_widget.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::hud_screen::HudScreen` [INFO] [stdout] --> src/widgets/crown_widget.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::screens::hud_screen::HudScreen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widget::Widget` [INFO] [stdout] --> src/widgets.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::widget::Widget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/screens/hud_screen.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/screens/hud_screen.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture` and `WindowCanvas` [INFO] [stdout] --> src/screens/hud_screen.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::render::{Texture, WindowCanvas}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::play_widget::PlayWidget` [INFO] [stdout] --> src/screens/hud_screen.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::widgets::play_widget::PlayWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widgets::score_widget::ScoreWidget` [INFO] [stdout] --> src/screens/hud_screen.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::widgets::score_widget::ScoreWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screen::Screen` [INFO] [stdout] --> src/screens.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::screen::Screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::game::Game` [INFO] [stdout] --> src/widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::game::Game; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/sound.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/sound.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `once_cell::sync::OnceCell` [INFO] [stdout] --> src/sound.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use once_cell::sync::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rodio::cpal::Stream` [INFO] [stdout] --> src/sound.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use rodio::cpal::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `env` [INFO] [stdout] --> src/main.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | use std::{env, fs}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::screens::main_menu_screen` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::screens::main_menu_screen; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num::clamp` [INFO] [stdout] --> src/main.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use num::clamp; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode` [INFO] [stdout] --> src/main.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | use sdl2::keyboard::Keycode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gjson::Value` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use gjson::Value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event::KeyDown` [INFO] [stdout] --> src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use sdl2::event::Event::KeyDown; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CardEntity` [INFO] [stdout] --> src/main.rs:40:42 [INFO] [stdout] | [INFO] [stdout] 40 | use crate::entities::card_entity::{Card, CardEntity}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::level::Level` [INFO] [stdout] --> src/main.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | use crate::level::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render::AssetData` [INFO] [stdout] --> src/main.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | use crate::render::AssetData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::widget::Alignment` [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | use crate::widget::Alignment; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:374:5 [INFO] [stdout] | [INFO] [stdout] 374 | / /// Delta refers to the time taken between showing two frames. This value is often used for physics related operations, as th... [INFO] [stdout] 375 | | /// You can see that happening in [`Entity::physics`] [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] 376 | // initiate delta [INFO] [stdout] 377 | let mut delta: f32 = 0.0; [INFO] [stdout] | ------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `widget::Widget` [INFO] [stdout] --> src/main.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use widget::Widget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Widget` [INFO] [stdout] --> src/game.rs:32:32 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::widget::{Alignment, Widget}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/widgets/player_widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> src/entities/dummy.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | fn change_health(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> src/entities/card_entity.rs:52:33 [INFO] [stdout] | [INFO] [stdout] 52 | fn change_health(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/entities/card_entity.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let mut player : &mut dyn Entity; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delta` [INFO] [stdout] --> src/entities/card_entity.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | fn tick(&mut self, delta: f32) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rl` [INFO] [stdout] --> src/entity.rs:41:41 [INFO] [stdout] | [INFO] [stdout] 41 | fn set_resource_location(&mut self, rl : ResourceLocation) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delta` [INFO] [stdout] --> src/entity.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | fn tick(&mut self, delta : f32) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ass` [INFO] [stdout] --> src/entity.rs:107:34 [INFO] [stdout] | [INFO] [stdout] 107 | fn set_asset_data(&mut self, ass : AssetData) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ass` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dims` [INFO] [stdout] --> src/game.rs:107:70 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn cycle(&mut self, delta : f32, mousex : u32, mousey : u32, dims : (u32, u32)) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut card_asset_base = AssetData { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:257:21 [INFO] [stdout] | [INFO] [stdout] 257 | let mut card = CardEntity::create(None, { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:298:17 [INFO] [stdout] | [INFO] [stdout] 298 | let mut level = &mut self.current_level; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:306:21 [INFO] [stdout] | [INFO] [stdout] 306 | let mut list = &mut self.entities; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/render.rs:129:57 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn draw_pp_texture(x: i32, y: i32, ass: &AssetData, mut canvas: &mut WindowCanvas, sf: i32, textures : &HashMap src/render.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | let mut id = ass.resource_location.clone(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `widget::Widget` [INFO] [stdout] --> src/main.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use widget::Widget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Widget` [INFO] [stdout] --> src/game.rs:32:32 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::widget::{Alignment, Widget}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entity::Entity` [INFO] [stdout] --> src/widgets/player_widget.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::entity::Entity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> src/entities/dummy.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | fn change_health(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> src/entities/card_entity.rs:52:33 [INFO] [stdout] | [INFO] [stdout] 52 | fn change_health(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/level.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let mut level = Self{ [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tiles` [INFO] [stdout] --> src/level.rs:54:36 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn create_scene_background(tiles : &HashMap) -> Self { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/entities/card_entity.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let mut player : &mut dyn Entity; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delta` [INFO] [stdout] --> src/entities/card_entity.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | fn tick(&mut self, delta: f32) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rl` [INFO] [stdout] --> src/entity.rs:41:41 [INFO] [stdout] | [INFO] [stdout] 41 | fn set_resource_location(&mut self, rl : ResourceLocation) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delta` [INFO] [stdout] --> src/entity.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | fn tick(&mut self, delta : f32) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ass` [INFO] [stdout] --> src/entity.rs:107:34 [INFO] [stdout] | [INFO] [stdout] 107 | fn set_asset_data(&mut self, ass : AssetData) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ass` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/tile.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | let size = self.size.get(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | let mut listy = self.get_widgets().get_mut(y); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dims` [INFO] [stdout] --> src/game.rs:107:70 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn cycle(&mut self, delta : f32, mousex : u32, mousey : u32, dims : (u32, u32)) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | let mut coords = w.correct_coords(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `events` [INFO] [stdout] --> src/screen.rs:37:53 [INFO] [stdout] | [INFO] [stdout] 37 | fn cycle(&mut self, mousex : u32, mousey : u32, events: Vec) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dims` [INFO] [stdout] --> src/screen.rs:61:102 [INFO] [stdout] | [INFO] [stdout] 61 | fn render(&mut self, textures : &HashMap, sf : i32, canvas : &mut WindowCanvas, dims : (u32, u32), debug : bool) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut card_asset_base = AssetData { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tf` [INFO] [stdout] --> src/widgets/score_widget.rs:51:32 [INFO] [stdout] | [INFO] [stdout] 51 | fn set_selected(&mut self, tf: bool) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:257:21 [INFO] [stdout] | [INFO] [stdout] 257 | let mut card = CardEntity::create(None, { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:298:17 [INFO] [stdout] | [INFO] [stdout] 298 | let mut level = &mut self.current_level; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:306:21 [INFO] [stdout] | [INFO] [stdout] 306 | let mut list = &mut self.entities; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ass` [INFO] [stdout] --> src/widgets/player_widget.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | fn set_asset_data(&mut self, ass: AssetData) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ass` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/render.rs:129:57 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn draw_pp_texture(x: i32, y: i32, ass: &AssetData, mut canvas: &mut WindowCanvas, sf: i32, textures : &HashMap src/render.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | let mut id = ass.resource_location.clone(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/level.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let mut level = Self{ [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tiles` [INFO] [stdout] --> src/level.rs:54:36 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn create_scene_background(tiles : &HashMap) -> Self { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/tile.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | let size = self.size.get(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | let mut listy = self.get_widgets().get_mut(y); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let mut canvas = &mut window.into_canvas().build().unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | let mut path = String::from(dir.unwrap().path().to_str().unwrap()).replace("\\", "/"); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut path = String::from(dir.unwrap().path().to_str().unwrap()).replace("\\", "/"); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:264:25 [INFO] [stdout] | [INFO] [stdout] 264 | let mut collison_box : Option<(u32,u32)>; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | let mut coords = w.correct_coords(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `events` [INFO] [stdout] --> src/screen.rs:37:53 [INFO] [stdout] | [INFO] [stdout] 37 | fn cycle(&mut self, mousex : u32, mousey : u32, events: Vec) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scale_offset` [INFO] [stdout] --> src/main.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | let scale_offset = (sdl_ctx.video().unwrap().current_display_mode(0).unwrap().h / scale_factor as i32) - 180; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scale_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dims` [INFO] [stdout] --> src/screen.rs:61:102 [INFO] [stdout] | [INFO] [stdout] 61 | fn render(&mut self, textures : &HashMap, sf : i32, canvas : &mut WindowCanvas, dims : (u32, u32), debug : bool) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `uuid`, `game`, `health`, and `index` are never read [INFO] [stdout] --> src/entities/dummy.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DummyEntity { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | uuid : Uuid, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | game : *mut Game, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | health : f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | resource_location: ResourceLocation, [INFO] [stdout] 17 | index : usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `uuid`, `health`, `index`, and `turn` are never read [INFO] [stdout] --> src/entities/card_entity.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct CardEntity { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | uuid : Uuid, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | game : Option<*mut Game>, [INFO] [stdout] 23 | health : f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 24 | resource_location: ResourceLocation, [INFO] [stdout] 25 | index : usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | turn: Turn, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_resource_location` is never used [INFO] [stdout] --> src/entities/card_entity.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 222 | impl Card { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn get_resource_location(&self) -> ResourceLocation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_health`, `change_health`, `set_resource_location`, `get_index`, `set_velocity`, and `set_asset_data` are never used [INFO] [stdout] --> src/entity.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Entity { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 30 | fn get_health(&mut self) -> f32; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn change_health(&mut self, amount : f32); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | [INFO] [stdout] 41 | fn set_resource_location(&mut self, rl : ResourceLocation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn get_index(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn set_velocity(&mut self, velocity : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn set_asset_data(&mut self, ass : AssetData) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clone` is never used [INFO] [stdout] --> src/game.rs:71:19 [INFO] [stdout] | [INFO] [stdout] 70 | impl Turn { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 71 | pub(crate) fn clone(&self) -> Turn { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_turn` is never used [INFO] [stdout] --> src/game.rs:396:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl Game { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn get_turn(&mut self) -> Turn { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_x`, `get_y`, `set_x`, and `set_y` are never used [INFO] [stdout] --> src/render.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl Dimensions { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 52 | pub fn get_x(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn get_y(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_x(&mut self, x : u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn set_y(&mut self, y : u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_vec` is never used [INFO] [stdout] --> src/utils.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn mul_vec(vec : &mut (f32, f32), val : f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalise_vec` is never used [INFO] [stdout] --> src/utils.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn normalise_vec(vec : (f32, f32)) -> (f32,f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dist` is never used [INFO] [stdout] --> src/utils.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn get_dist(a : &(f32, f32), b : &(f32, f32)) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_tile` is never used [INFO] [stdout] --> src/level.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Level { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_tile(&mut self, size : TileSize, coordinates: (f32, f32)) -> Tile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `connections` is never read [INFO] [stdout] --> src/level.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct TileGraph { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 78 | nodes : HashMap<(i32, i32), Tile>, [INFO] [stdout] 79 | connections : HashMap<(i32,i32), Vec<((i32,i32), u32)>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `append`, `append_from_wolrd_space`, `get_tile`, `build_connections`, and `path_to` are never used [INFO] [stdout] --> src/level.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl TileGraph { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn append(&mut self, tile : Tile,value : (i32, i32), connections : Vec<((i32, i32), u32)>) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn append_from_wolrd_space(&mut self, tile : Tile,value : (i32, i32), connections : Vec<((i32, i32), u32)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn get_tile(&mut self, x : i32, y : i32) -> Tile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn build_connections(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn path_to(&mut self, x : i32, y : i32, tx : i32, ty : i32) -> Vec<(i32, i32)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `create_none`, `create_nav`, `get_name`, `get_resource_location`, `get_size`, and `get_type` are never used [INFO] [stdout] --> src/tile.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl Tile { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn create_none(size : TileSize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn create_nav() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn get_name(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn get_resource_location(&mut self) -> ResourceLocation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn get_size(self) -> TileSize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn get_type(&mut self) -> TileType { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_game` is never used [INFO] [stdout] --> src/screen.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Screen { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 29 | fn set_game(&mut self, game : *mut Game); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EnumWidget` is never constructed [INFO] [stdout] --> src/widgets/enum_widget.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct EnumWidget { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `get_value` and `create` are never used [INFO] [stdout] --> src/widgets/enum_widget.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 21 | impl EnumWidget { [INFO] [stdout] | ---------------------------------------------------- associated items in this implementation [INFO] [stdout] 22 | [INFO] [stdout] 23 | fn get_value(&mut self) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn create(alignment: Alignment, x: i32, y: i32, game: *mut Game, enumt : T) -> Box { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `WidgetEnum` is never used [INFO] [stdout] --> src/widgets/enum_widget.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | pub trait WidgetEnum { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrWidget` is never constructed [INFO] [stdout] --> src/widgets/err_widget.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ErrWidget { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `empty` is never used [INFO] [stdout] --> src/widgets/err_widget.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl ErrWidget { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 20 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create` is never used [INFO] [stdout] --> src/widgets/err_widget.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl ErrWidget { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 44 | pub fn create(alignment: Alignment, x : i32, y : i32, game : *mut Game) -> Box [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoreWidget` is never constructed [INFO] [stdout] --> src/widgets/score_widget.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ScoreWidget { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create` is never used [INFO] [stdout] --> src/widgets/score_widget.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl ScoreWidget { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 23 | pub fn create(alignment: Alignment, x : i32, y : i32, game : *mut Game) -> Box [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_screen_coordinates`, `set_asset_data`, `get_resource_location`, `set_allignment`, `get_game`, and `return_enum_int` are never used [INFO] [stdout] --> src/widget.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Widget { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 25 | fn set_screen_coordinates(&mut self, x : i32, y : i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | fn set_asset_data(&mut self, ass : AssetData); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn get_resource_location(&mut self) -> ResourceLocation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn set_allignment(&mut self, alignment: Alignment); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn get_game(&mut self); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | [INFO] [stdout] 77 | fn return_enum_int(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TOP`, `BOTTOM`, `CENTRE`, and `NONE` are never constructed [INFO] [stdout] --> src/widget.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub enum Alignment { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 95 | TOP, [INFO] [stdout] | ^^^ [INFO] [stdout] 96 | BOTTOM, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | CENTRE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 98 | NONE [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> src/widget.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Alignment { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 102 | pub fn parse(val : String) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `resource_location` is never read [INFO] [stdout] --> src/sound.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Sound { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | pub path : String, [INFO] [stdout] 15 | pub resource_location : ResourceLocation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tf` [INFO] [stdout] --> src/widgets/score_widget.rs:51:32 [INFO] [stdout] | [INFO] [stdout] 51 | fn set_selected(&mut self, tf: bool) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ass` [INFO] [stdout] --> src/widgets/player_widget.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | fn set_asset_data(&mut self, ass: AssetData) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ass` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/entities/card_entity.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | / match events { [INFO] [stdout] 103 | | Event::MouseButtonDown { // check for a left click [INFO] [stdout] 104 | | mouse_btn: MouseButton::Left, [INFO] [stdout] 105 | | .. [INFO] [stdout] ... | [INFO] [stdout] 121 | | _ => {} [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [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] 102 ~ if let Event::MouseButtonDown { // check for a left click [INFO] [stdout] 103 + mouse_btn: MouseButton::Left, [INFO] [stdout] 104 + .. [INFO] [stdout] 105 + } = events { [INFO] [stdout] 106 + self.selected = true; // set selected to true [INFO] [stdout] 107 + game.play_sound(ResourceLocation::new("memory_game", "sounds/flip.ogg")); [INFO] [stdout] 108 + if game.selected_count==0 { // if none selected [INFO] [stdout] 109 + game.selected_count+=1; // increment selected counter [INFO] [stdout] 110 + game.selected_cards.0 = self.card.clone() // set the first value to this card [INFO] [stdout] 111 + } [INFO] [stdout] 112 + else if game.selected_count==1 { // if one already selected [INFO] [stdout] 113 + game.selected_count+=1; // increment selected counter [INFO] [stdout] 114 + game.selected_cards.1 = self.card.clone() // set second value to this card [INFO] [stdout] 115 + } [INFO] [stdout] 116 + else { [INFO] [stdout] 117 + // nothing [INFO] [stdout] 118 + } [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | fn set_coords(&mut self, coords : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] = note: `#[warn(clippy::must_use_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | fn change_health(&mut self, amount : f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | fn set_velocity(&mut self, velocity : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.current_screen` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 153 | let _ = if self.current_screen.is_some() { [INFO] [stdout] | -------------------------------- help: try: `if let Some() = &mut self.current_screen` [INFO] [stdout] 154 | self.current_screen.as_mut().unwrap().cycle(mousex, mousey, self.events.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.current_screen` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:181:35 [INFO] [stdout] | [INFO] [stdout] 180 | if self.current_screen.is_some() { [INFO] [stdout] | -------------------------------- help: try: `if let Some() = &mut self.current_screen` [INFO] [stdout] 181 | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/game.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / let _ = if self.current_screen.is_some() { [INFO] [stdout] 154 | | self.current_screen.as_mut().unwrap().cycle(mousex, mousey, self.events.clone()) [INFO] [stdout] 155 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 153 - let _ = if self.current_screen.is_some() { [INFO] [stdout] 153 + if self.current_screen.is_some() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/game.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | / if self.current_screen.is_some() { [INFO] [stdout] 181 | | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] 182 | | for w in wl { [INFO] [stdout] 183 | | if w.get_selected() { [INFO] [stdout] ... | [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 178 ~ } [INFO] [stdout] 179 | // on left click, check if the mouse is over a widget, if so, execute its on_click function [INFO] [stdout] 180 ~ if self.current_screen.is_some() => { [INFO] [stdout] 181 | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] ... [INFO] [stdout] 187 | } [INFO] [stdout] 188 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/game.rs:251:29 [INFO] [stdout] | [INFO] [stdout] 251 | for (_,card) in &self.cards { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 251 - for (_,card) in &self.cards { [INFO] [stdout] 251 + for card in self.cards.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(f32, f32)` which implements the `Copy` trait [INFO] [stdout] --> src/game.rs:255:27 [INFO] [stdout] | [INFO] [stdout] 255 | let pos = positions.get(index).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*positions.get(index).unwrap()` [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: calling `&mut Mutex::lock` unnecessarily locks an exclusive (mutable) reference [INFO] [stdout] --> src/game.rs:295:40 [INFO] [stdout] | [INFO] [stdout] 295 | let player_coords = player.lock().unwrap().get_coords(); [INFO] [stdout] | ^^^^ help: change this to: `get_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_mutex_lock [INFO] [stdout] = note: `#[warn(clippy::mut_mutex_lock)]` 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/game.rs:310:67 [INFO] [stdout] | [INFO] [stdout] 310 | draw_pp_texture(screen_coords.0, screen_coords.1, &asset_data, canvas, sf, textures); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `asset_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] --> src/game.rs:327:21 [INFO] [stdout] | [INFO] [stdout] 327 | &render::get_icons().lock().unwrap().get("finger").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `render::get_icons().lock().unwrap().get("finger").unwrap()` [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/game.rs:330:21 [INFO] [stdout] | [INFO] [stdout] 330 | &textures [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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/game.rs:337:21 [INFO] [stdout] | [INFO] [stdout] 337 | &render::get_icons().lock().unwrap().get("cursor").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `render::get_icons().lock().unwrap().get("cursor").unwrap()` [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/game.rs:340:21 [INFO] [stdout] | [INFO] [stdout] 340 | &textures [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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: called `unwrap` on `sound` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:354:43 [INFO] [stdout] | [INFO] [stdout] 352 | if sound.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = sound` [INFO] [stdout] 353 | #[cfg(not(target_os = "emscripten"))] [INFO] [stdout] 354 | self.audio_manager.play_sound(sound.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let mut canvas = &mut window.into_canvas().build().unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | let mut path = String::from(dir.unwrap().path().to_str().unwrap()).replace("\\", "/"); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut path = String::from(dir.unwrap().path().to_str().unwrap()).replace("\\", "/"); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:264:25 [INFO] [stdout] | [INFO] [stdout] 264 | let mut collison_box : Option<(u32,u32)>; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scale_offset` [INFO] [stdout] --> src/main.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | let scale_offset = (sdl_ctx.video().unwrap().current_display_mode(0).unwrap().h / scale_factor as i32) - 180; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scale_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/render.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | uv: self.uv.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.uv` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/render.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | origin: self.origin.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.origin` [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: fields `uuid`, `game`, `health`, and `index` are never read [INFO] [stdout] --> src/entities/dummy.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DummyEntity { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | uuid : Uuid, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | game : *mut Game, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | health : f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | resource_location: ResourceLocation, [INFO] [stdout] 17 | index : usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `uuid`, `health`, `index`, and `turn` are never read [INFO] [stdout] --> src/entities/card_entity.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct CardEntity { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | uuid : Uuid, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | game : Option<*mut Game>, [INFO] [stdout] 23 | health : f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 24 | resource_location: ResourceLocation, [INFO] [stdout] 25 | index : usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | turn: Turn, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_resource_location` is never used [INFO] [stdout] --> src/entities/card_entity.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 222 | impl Card { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn get_resource_location(&self) -> ResourceLocation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_health`, `change_health`, `set_resource_location`, `get_index`, `set_velocity`, and `set_asset_data` are never used [INFO] [stdout] --> src/entity.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Entity { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 30 | fn get_health(&mut self) -> f32; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn change_health(&mut self, amount : f32); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | [INFO] [stdout] 41 | fn set_resource_location(&mut self, rl : ResourceLocation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn get_index(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn set_velocity(&mut self, velocity : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn set_asset_data(&mut self, ass : AssetData) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clone` is never used [INFO] [stdout] --> src/game.rs:71:19 [INFO] [stdout] | [INFO] [stdout] 70 | impl Turn { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 71 | pub(crate) fn clone(&self) -> Turn { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_turn` is never used [INFO] [stdout] --> src/game.rs:396:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl Game { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn get_turn(&mut self) -> Turn { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_x`, `get_y`, `set_x`, and `set_y` are never used [INFO] [stdout] --> src/render.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl Dimensions { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 52 | pub fn get_x(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn get_y(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_x(&mut self, x : u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn set_y(&mut self, y : u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_vec` is never used [INFO] [stdout] --> src/utils.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn mul_vec(vec : &mut (f32, f32), val : f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalise_vec` is never used [INFO] [stdout] --> src/utils.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn normalise_vec(vec : (f32, f32)) -> (f32,f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dist` is never used [INFO] [stdout] --> src/utils.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn get_dist(a : &(f32, f32), b : &(f32, f32)) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_tile` is never used [INFO] [stdout] --> src/level.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Level { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_tile(&mut self, size : TileSize, coordinates: (f32, f32)) -> Tile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `connections` is never read [INFO] [stdout] --> src/level.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct TileGraph { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 78 | nodes : HashMap<(i32, i32), Tile>, [INFO] [stdout] 79 | connections : HashMap<(i32,i32), Vec<((i32,i32), u32)>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `append`, `append_from_wolrd_space`, `get_tile`, `build_connections`, and `path_to` are never used [INFO] [stdout] --> src/level.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl TileGraph { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn append(&mut self, tile : Tile,value : (i32, i32), connections : Vec<((i32, i32), u32)>) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn append_from_wolrd_space(&mut self, tile : Tile,value : (i32, i32), connections : Vec<((i32, i32), u32)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn get_tile(&mut self, x : i32, y : i32) -> Tile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn build_connections(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn path_to(&mut self, x : i32, y : i32, tx : i32, ty : i32) -> Vec<(i32, i32)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `create_none`, `create_nav`, `get_name`, `get_resource_location`, `get_size`, and `get_type` are never used [INFO] [stdout] --> src/tile.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl Tile { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn create_none(size : TileSize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn create_nav() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn get_name(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn get_resource_location(&mut self) -> ResourceLocation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn get_size(self) -> TileSize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn get_type(&mut self) -> TileType { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_game` is never used [INFO] [stdout] --> src/screen.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Screen { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 29 | fn set_game(&mut self, game : *mut Game); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EnumWidget` is never constructed [INFO] [stdout] --> src/widgets/enum_widget.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct EnumWidget { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `get_value` and `create` are never used [INFO] [stdout] --> src/widgets/enum_widget.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 21 | impl EnumWidget { [INFO] [stdout] | ---------------------------------------------------- associated items in this implementation [INFO] [stdout] 22 | [INFO] [stdout] 23 | fn get_value(&mut self) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn create(alignment: Alignment, x: i32, y: i32, game: *mut Game, enumt : T) -> Box { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `WidgetEnum` is never used [INFO] [stdout] --> src/widgets/enum_widget.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | pub trait WidgetEnum { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrWidget` is never constructed [INFO] [stdout] --> src/widgets/err_widget.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ErrWidget { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `empty` is never used [INFO] [stdout] --> src/widgets/err_widget.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl ErrWidget { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 20 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create` is never used [INFO] [stdout] --> src/widgets/err_widget.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl ErrWidget { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 44 | pub fn create(alignment: Alignment, x : i32, y : i32, game : *mut Game) -> Box [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/render.rs:143:57 [INFO] [stdout] | [INFO] [stdout] 143 | if !get_missing_list().lock().unwrap().contains(&&id.to_string()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `(&id.to_string())` [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: struct `ScoreWidget` is never constructed [INFO] [stdout] --> src/widgets/score_widget.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ScoreWidget { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/render.rs:152:18 [INFO] [stdout] | [INFO] [stdout] 152 | .copy_ex(&texture.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `texture.unwrap()` [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: associated function `create` is never used [INFO] [stdout] --> src/widgets/score_widget.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl ScoreWidget { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 23 | pub fn create(alignment: Alignment, x : i32, y : i32, game : *mut Game) -> Box [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_screen_coordinates`, `set_asset_data`, `get_resource_location`, `set_allignment`, `get_game`, and `return_enum_int` are never used [INFO] [stdout] --> src/widget.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Widget { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 25 | fn set_screen_coordinates(&mut self, x : i32, y : i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | fn set_asset_data(&mut self, ass : AssetData); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn get_resource_location(&mut self) -> ResourceLocation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn set_allignment(&mut self, alignment: Alignment); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn get_game(&mut self); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | [INFO] [stdout] 77 | fn return_enum_int(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TOP`, `BOTTOM`, `CENTRE`, and `NONE` are never constructed [INFO] [stdout] --> src/widget.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub enum Alignment { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 95 | TOP, [INFO] [stdout] | ^^^ [INFO] [stdout] 96 | BOTTOM, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | CENTRE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 98 | NONE [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> src/widget.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Alignment { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 102 | pub fn parse(val : String) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `resource_location` is never read [INFO] [stdout] --> src/sound.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Sound { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | pub path : String, [INFO] [stdout] 15 | pub resource_location : ResourceLocation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `iter` is used as a loop counter [INFO] [stdout] --> src/utils.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | for s in entities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using: `for (iter, s) in entities.iter_mut().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `&mut Mutex::lock` unnecessarily locks an exclusive (mutable) reference [INFO] [stdout] --> src/utils.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | list.push((0usize, iter, s.lock().unwrap().get_coords().1) ); [INFO] [stdout] | ^^^^ help: change this to: `get_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_mutex_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | if !(list.len() <= 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(list.len() > 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/level.rs:79:19 [INFO] [stdout] | [INFO] [stdout] 79 | connections : HashMap<(i32,i32), Vec<((i32,i32), u32)>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `result` after checking its variant with `is_some` [INFO] [stdout] --> src/level.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 118 | if result.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = result` [INFO] [stdout] 119 | result.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/entities/card_entity.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | / match events { [INFO] [stdout] 103 | | Event::MouseButtonDown { // check for a left click [INFO] [stdout] 104 | | mouse_btn: MouseButton::Left, [INFO] [stdout] 105 | | .. [INFO] [stdout] ... | [INFO] [stdout] 121 | | _ => {} [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [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] 102 ~ if let Event::MouseButtonDown { // check for a left click [INFO] [stdout] 103 + mouse_btn: MouseButton::Left, [INFO] [stdout] 104 + .. [INFO] [stdout] 105 + } = events { [INFO] [stdout] 106 + self.selected = true; // set selected to true [INFO] [stdout] 107 + game.play_sound(ResourceLocation::new("memory_game", "sounds/flip.ogg")); [INFO] [stdout] 108 + if game.selected_count==0 { // if none selected [INFO] [stdout] 109 + game.selected_count+=1; // increment selected counter [INFO] [stdout] 110 + game.selected_cards.0 = self.card.clone() // set the first value to this card [INFO] [stdout] 111 + } [INFO] [stdout] 112 + else if game.selected_count==1 { // if one already selected [INFO] [stdout] 113 + game.selected_count+=1; // increment selected counter [INFO] [stdout] 114 + game.selected_cards.1 = self.card.clone() // set second value to this card [INFO] [stdout] 115 + } [INFO] [stdout] 116 + else { [INFO] [stdout] 117 + // nothing [INFO] [stdout] 118 + } [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | / if self.nodes.get(&n).is_some() { [INFO] [stdout] 166 | | if self.nodes.clone().get_mut(&n).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 167 | | connections.push((n, 1)) [INFO] [stdout] 168 | | } [INFO] [stdout] 169 | | } [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] 165 ~ if self.nodes.get(&n).is_some() [INFO] [stdout] 166 ~ && self.nodes.clone().get_mut(&n).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 167 | connections.push((n, 1)) [INFO] [stdout] 168 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&n).is_some()` [INFO] [stdout] --> src/level.rs:165:27 [INFO] [stdout] | [INFO] [stdout] 165 | if self.nodes.get(&n).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&n)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / if self.nodes.get(&e).is_some() { [INFO] [stdout] 171 | | if self.nodes.clone().get_mut(&e).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 172 | | connections.push((e, 1)) [INFO] [stdout] 173 | | } [INFO] [stdout] 174 | | } [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] 170 ~ if self.nodes.get(&e).is_some() [INFO] [stdout] 171 ~ && self.nodes.clone().get_mut(&e).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 172 | connections.push((e, 1)) [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&e).is_some()` [INFO] [stdout] --> src/level.rs:170:27 [INFO] [stdout] | [INFO] [stdout] 170 | if self.nodes.get(&e).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&e)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | / if self.nodes.get(&s).is_some() { [INFO] [stdout] 176 | | if self.nodes.clone().get_mut(&s).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 177 | | connections.push((s, 1)) [INFO] [stdout] 178 | | } [INFO] [stdout] 179 | | } [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] 175 ~ if self.nodes.get(&s).is_some() [INFO] [stdout] 176 ~ && self.nodes.clone().get_mut(&s).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 177 | connections.push((s, 1)) [INFO] [stdout] 178 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&s).is_some()` [INFO] [stdout] --> src/level.rs:175:27 [INFO] [stdout] | [INFO] [stdout] 175 | if self.nodes.get(&s).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&s)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / if self.nodes.get(&w).is_some() { [INFO] [stdout] 181 | | if self.nodes.clone().get_mut(&w).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 182 | | connections.push((w, 1)) [INFO] [stdout] 183 | | } [INFO] [stdout] 184 | | } [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] 180 ~ if self.nodes.get(&w).is_some() [INFO] [stdout] 181 ~ && self.nodes.clone().get_mut(&w).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 182 | connections.push((w, 1)) [INFO] [stdout] 183 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&w).is_some()` [INFO] [stdout] --> src/level.rs:180:27 [INFO] [stdout] | [INFO] [stdout] 180 | if self.nodes.get(&w).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/level.rs:223:15 [INFO] [stdout] | [INFO] [stdout] 223 | while graph.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph.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: this `if` has identical blocks [INFO] [stdout] --> src/level.rs:229:39 [INFO] [stdout] | [INFO] [stdout] 229 | if shortest.is_none() { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 230 | | shortest = Some(vert.0) [INFO] [stdout] 231 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/level.rs:232:85 [INFO] [stdout] | [INFO] [stdout] 232 | else if f.get(&vert.0).unwrap() < f.get(&shortest.unwrap()).unwrap(){ [INFO] [stdout] | _____________________________________________________________________________________^ [INFO] [stdout] 233 | | shortest = Some(vert.0) [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(neighbour).is_some()` [INFO] [stdout] --> src/level.rs:240:26 [INFO] [stdout] | [INFO] [stdout] 240 | if graph.get(neighbour).is_some() && cost + g.get(&shortest.unwrap()).unwrap() < *f.get(&neighbour).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(neighbour)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/level.rs:240:105 [INFO] [stdout] | [INFO] [stdout] 240 | if graph.get(neighbour).is_some() && cost + g.get(&shortest.unwrap()).unwrap() < *f.get(&neighbour).unwrap() { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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/level.rs:241:32 [INFO] [stdout] | [INFO] [stdout] 241 | *g.get_mut(&neighbour).unwrap() = cost + *g.get_mut(&shortest.unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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/level.rs:242:32 [INFO] [stdout] | [INFO] [stdout] 242 | *f.get_mut(&neighbour).unwrap() = cost + g.get(&shortest.unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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 unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | fn set_coords(&mut self, coords : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] = note: `#[warn(clippy::must_use_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | fn change_health(&mut self, amount : f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/entity.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | fn set_velocity(&mut self, velocity : (f32, f32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/entity.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&vertex).is_some()` [INFO] [stdout] --> src/level.rs:251:55 [INFO] [stdout] | [INFO] [stdout] 251 | while vertex != (startx, starty) && prev_vert.get(&vertex).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&vertex)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WALL` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | WALL, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wall` [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 `FLOOR` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | FLOOR [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Floor` [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: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/tile.rs:34:29 [INFO] [stdout] | [INFO] [stdout] 34 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 35 | | match self { [INFO] [stdout] 36 | | TileType::WALL => {Self::WALL} [INFO] [stdout] 37 | | TileType::FLOOR => {Self::FLOOR} [INFO] [stdout] 38 | | } [INFO] [stdout] 39 | | } [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#non_canonical_clone_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_clone_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BIG` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | BIG, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Big` [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 `MEDIUM` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | MEDIUM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Medium` [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: called `unwrap` on `self.current_screen` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 153 | let _ = if self.current_screen.is_some() { [INFO] [stdout] | -------------------------------- help: try: `if let Some() = &mut self.current_screen` [INFO] [stdout] 154 | self.current_screen.as_mut().unwrap().cycle(mousex, mousey, self.events.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.current_screen` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:181:35 [INFO] [stdout] | [INFO] [stdout] 180 | if self.current_screen.is_some() { [INFO] [stdout] | -------------------------------- help: try: `if let Some() = &mut self.current_screen` [INFO] [stdout] 181 | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SMALL` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | SMALL [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Small` [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: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/tile.rs:111:29 [INFO] [stdout] | [INFO] [stdout] 111 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 112 | | match self { [INFO] [stdout] 113 | | TileSize::BIG => {Self::BIG} [INFO] [stdout] 114 | | TileSize::MEDIUM => {Self::MEDIUM} [INFO] [stdout] ... | [INFO] [stdout] 117 | | } [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#non_canonical_clone_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/tile.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | / pub fn create( [INFO] [stdout] 146 | | name : String, [INFO] [stdout] 147 | | resource_location : ResourceLocation, [INFO] [stdout] 148 | | texture : ResourceLocation, [INFO] [stdout] ... | [INFO] [stdout] 154 | | collision_box : Option<(u32, u32)> [INFO] [stdout] 155 | | ) -> Self { [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 `TileType` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.tile_type.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tile_type` [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 let-binding has unit value [INFO] [stdout] --> src/game.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / let _ = if self.current_screen.is_some() { [INFO] [stdout] 154 | | self.current_screen.as_mut().unwrap().cycle(mousex, mousey, self.events.clone()) [INFO] [stdout] 155 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 153 - let _ = if self.current_screen.is_some() { [INFO] [stdout] 153 + if self.current_screen.is_some() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TileType` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:263:24 [INFO] [stdout] | [INFO] [stdout] 263 | tile_type: self.tile_type.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tile_type` [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 `TileSize` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:264:19 [INFO] [stdout] | [INFO] [stdout] 264 | size: self.size.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:265:21 [INFO] [stdout] | [INFO] [stdout] 265 | origin: self.origin.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.origin` [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/tile.rs:266:24 [INFO] [stdout] | [INFO] [stdout] 266 | collision: self.collision.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.collision` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/game.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | / if self.current_screen.is_some() { [INFO] [stdout] 181 | | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] 182 | | for w in wl { [INFO] [stdout] 183 | | if w.get_selected() { [INFO] [stdout] ... | [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 178 ~ } [INFO] [stdout] 179 | // on left click, check if the mouse is over a widget, if so, execute its on_click function [INFO] [stdout] 180 ~ if self.current_screen.is_some() => { [INFO] [stdout] 181 | for wl in self.current_screen.as_mut().unwrap().get_widgets() { [INFO] [stdout] ... [INFO] [stdout] 187 | } [INFO] [stdout] 188 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option<(u32, u32)>` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:267:28 [INFO] [stdout] | [INFO] [stdout] 267 | collision_box: self.collision_box.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.collision_box` [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: implementation of inherent method `to_string(&self) -> String` for type `resource_location::ResourceLocation` [INFO] [stdout] --> src/resource_location.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn to_string(&self) -> String { [INFO] [stdout] 47 | | format!("{}:{}", self.namespace, self.path) [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `resource_location::ResourceLocation` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Split<'_, &str>` [INFO] [stdout] --> src/resource_location.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | let vals = value.split(":").into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `value.split(":")` [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] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `vals.get(0)` [INFO] [stdout] --> src/resource_location.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new(vals.get(0).unwrap(), vals.get(1).unwrap()) [INFO] [stdout] | ^^^^^^^^^^^ help: try: `vals.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/screen.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | fn set_game(&mut self, game : *mut Game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/screen.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/game.rs:251:29 [INFO] [stdout] | [INFO] [stdout] 251 | for (_,card) in &self.cards { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 251 - for (_,card) in &self.cards { [INFO] [stdout] 251 + for card in self.cards.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/screen.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let _ = w.set_selected(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 41 - let _ = w.set_selected(false); [INFO] [stdout] 41 + w.set_selected(false); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(f32, f32)` which implements the `Copy` trait [INFO] [stdout] --> src/game.rs:255:27 [INFO] [stdout] | [INFO] [stdout] 255 | let pos = positions.get(index).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*positions.get(index).unwrap()` [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 let-binding has unit value [INFO] [stdout] --> src/screen.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let _ = w.set_selected(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 49 - let _ = w.set_selected(true); [INFO] [stdout] 49 + w.set_selected(true); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `&mut Mutex::lock` unnecessarily locks an exclusive (mutable) reference [INFO] [stdout] --> src/game.rs:295:40 [INFO] [stdout] | [INFO] [stdout] 295 | let player_coords = player.lock().unwrap().get_coords(); [INFO] [stdout] | ^^^^ help: change this to: `get_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_mutex_lock [INFO] [stdout] = note: `#[warn(clippy::mut_mutex_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/play_widget.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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] --> src/game.rs:310:67 [INFO] [stdout] | [INFO] [stdout] 310 | draw_pp_texture(screen_coords.0, screen_coords.1, &asset_data, canvas, sf, textures); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `asset_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] --> src/game.rs:327:21 [INFO] [stdout] | [INFO] [stdout] 327 | &render::get_icons().lock().unwrap().get("finger").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `render::get_icons().lock().unwrap().get("finger").unwrap()` [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: statement with no effect [INFO] [stdout] --> src/widgets/play_widget.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] = note: `#[warn(clippy::no_effect)]` 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/game.rs:330:21 [INFO] [stdout] | [INFO] [stdout] 330 | &textures [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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/game.rs:337:21 [INFO] [stdout] | [INFO] [stdout] 337 | &render::get_icons().lock().unwrap().get("cursor").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `render::get_icons().lock().unwrap().get("cursor").unwrap()` [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/game.rs:340:21 [INFO] [stdout] | [INFO] [stdout] 340 | &textures [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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: called `unwrap` on `sound` after checking its variant with `is_some` [INFO] [stdout] --> src/game.rs:354:43 [INFO] [stdout] | [INFO] [stdout] 352 | if sound.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = sound` [INFO] [stdout] 353 | #[cfg(not(target_os = "emscripten"))] [INFO] [stdout] 354 | self.audio_manager.play_sound(sound.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/enum_widget.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/err_widget.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/score_widget.rs:88:44 [INFO] [stdout] | [INFO] [stdout] 88 | let score_as_string = format!("{}",game.score.clone() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `game.score` [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: the variable `counter` is used as a loop counter [INFO] [stdout] --> src/widgets/score_widget.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | for character in score_as_string.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (counter, character) in score_as_string.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/quit_widget.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/quit_widget.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/player_widget.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/render.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | uv: self.uv.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.uv` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/render.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | origin: self.origin.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.origin` [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] --> src/widgets/player_widget.rs:120:93 [INFO] [stdout] | [INFO] [stdout] 120 | render::draw_pp_texture(x_y.0, x_y.1, &self.get_debug_asset_data(), canvas, sf, &textures); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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/widgets/player_widget.rs:122:83 [INFO] [stdout] | [INFO] [stdout] 122 | render::draw_pp_texture(x_y.0, x_y.1, &self.get_asset_data(), canvas, sf, &textures); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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/render.rs:143:57 [INFO] [stdout] | [INFO] [stdout] 143 | if !get_missing_list().lock().unwrap().contains(&&id.to_string()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `(&id.to_string())` [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/render.rs:152:18 [INFO] [stdout] | [INFO] [stdout] 152 | .copy_ex(&texture.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `texture.unwrap()` [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 variable `iter` is used as a loop counter [INFO] [stdout] --> src/utils.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | for s in entities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using: `for (iter, s) in entities.iter_mut().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `&mut Mutex::lock` unnecessarily locks an exclusive (mutable) reference [INFO] [stdout] --> src/utils.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | list.push((0usize, iter, s.lock().unwrap().get_coords().1) ); [INFO] [stdout] | ^^^^ help: change this to: `get_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_mutex_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | if !(list.len() <= 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(list.len() > 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/play_again_widget.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/play_again_widget.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/crown_widget.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/level.rs:79:19 [INFO] [stdout] | [INFO] [stdout] 79 | connections : HashMap<(i32,i32), Vec<((i32,i32), u32)>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statement with no effect [INFO] [stdout] --> src/widgets/crown_widget.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `result` after checking its variant with `is_some` [INFO] [stdout] --> src/level.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 118 | if result.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = result` [INFO] [stdout] 119 | result.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 13 | fn on_click(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 19 | fn set_selected(&mut self, tf : bool); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 24 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 25 | fn set_screen_coordinates(&mut self, x : i32, y : i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | / if self.nodes.get(&n).is_some() { [INFO] [stdout] 166 | | if self.nodes.clone().get_mut(&n).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 167 | | connections.push((n, 1)) [INFO] [stdout] 168 | | } [INFO] [stdout] 169 | | } [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] 165 ~ if self.nodes.get(&n).is_some() [INFO] [stdout] 166 ~ && self.nodes.clone().get_mut(&n).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 167 | connections.push((n, 1)) [INFO] [stdout] 168 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&n).is_some()` [INFO] [stdout] --> src/level.rs:165:27 [INFO] [stdout] | [INFO] [stdout] 165 | if self.nodes.get(&n).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&n)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / if self.nodes.get(&e).is_some() { [INFO] [stdout] 171 | | if self.nodes.clone().get_mut(&e).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 172 | | connections.push((e, 1)) [INFO] [stdout] 173 | | } [INFO] [stdout] 174 | | } [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] 170 ~ if self.nodes.get(&e).is_some() [INFO] [stdout] 171 ~ && self.nodes.clone().get_mut(&e).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 172 | connections.push((e, 1)) [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&e).is_some()` [INFO] [stdout] --> src/level.rs:170:27 [INFO] [stdout] | [INFO] [stdout] 170 | if self.nodes.get(&e).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&e)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | / if self.nodes.get(&s).is_some() { [INFO] [stdout] 176 | | if self.nodes.clone().get_mut(&s).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 177 | | connections.push((s, 1)) [INFO] [stdout] 178 | | } [INFO] [stdout] 179 | | } [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] 175 ~ if self.nodes.get(&s).is_some() [INFO] [stdout] 176 ~ && self.nodes.clone().get_mut(&s).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 177 | connections.push((s, 1)) [INFO] [stdout] 178 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 63 | fn set_asset_data(&mut self, ass : AssetData); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&s).is_some()` [INFO] [stdout] --> src/level.rs:175:27 [INFO] [stdout] | [INFO] [stdout] 175 | if self.nodes.get(&s).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&s)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 71 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 72 | fn set_allignment(&mut self, alignment: Alignment); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 74 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 75 | fn get_game(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/level.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / if self.nodes.get(&w).is_some() { [INFO] [stdout] 181 | | if self.nodes.clone().get_mut(&w).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 182 | | connections.push((w, 1)) [INFO] [stdout] 183 | | } [INFO] [stdout] 184 | | } [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] 180 ~ if self.nodes.get(&w).is_some() [INFO] [stdout] 181 ~ && self.nodes.clone().get_mut(&w).unwrap().get_type() == TileType::FLOOR { [INFO] [stdout] 182 | connections.push((w, 1)) [INFO] [stdout] 183 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&w).is_some()` [INFO] [stdout] --> src/level.rs:180:27 [INFO] [stdout] | [INFO] [stdout] 180 | if self.nodes.get(&w).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [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 `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [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 `TOP` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | TOP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Top` [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 `BOTTOM` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | BOTTOM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bottom` [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 `CENTRE` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | CENTRE, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Centre` [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 `NONE` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | NONE [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `None` [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: length comparison to zero [INFO] [stdout] --> src/level.rs:223:15 [INFO] [stdout] | [INFO] [stdout] 223 | while graph.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph.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: this `if` has identical blocks [INFO] [stdout] --> src/level.rs:229:39 [INFO] [stdout] | [INFO] [stdout] 229 | if shortest.is_none() { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 230 | | shortest = Some(vert.0) [INFO] [stdout] 231 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/level.rs:232:85 [INFO] [stdout] | [INFO] [stdout] 232 | else if f.get(&vert.0).unwrap() < f.get(&shortest.unwrap()).unwrap(){ [INFO] [stdout] | _____________________________________________________________________________________^ [INFO] [stdout] 233 | | shortest = Some(vert.0) [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `stuff` after checking its variant with `is_ok` [INFO] [stdout] --> src/sound.rs:33:43 [INFO] [stdout] | [INFO] [stdout] 32 | if stuff.is_ok() { [INFO] [stdout] | ---------------- help: try: `if let Ok() = stuff` [INFO] [stdout] 33 | let (stream, stream_handle) = stuff.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(neighbour).is_some()` [INFO] [stdout] --> src/level.rs:240:26 [INFO] [stdout] | [INFO] [stdout] 240 | if graph.get(neighbour).is_some() && cost + g.get(&shortest.unwrap()).unwrap() < *f.get(&neighbour).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(neighbour)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/level.rs:240:105 [INFO] [stdout] | [INFO] [stdout] 240 | if graph.get(neighbour).is_some() && cost + g.get(&shortest.unwrap()).unwrap() < *f.get(&neighbour).unwrap() { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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/level.rs:241:32 [INFO] [stdout] | [INFO] [stdout] 241 | *g.get_mut(&neighbour).unwrap() = cost + *g.get_mut(&shortest.unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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/level.rs:242:32 [INFO] [stdout] | [INFO] [stdout] 242 | *f.get_mut(&neighbour).unwrap() = cost + g.get(&shortest.unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `neighbour` [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 use of `get(&vertex).is_some()` [INFO] [stdout] --> src/level.rs:251:55 [INFO] [stdout] | [INFO] [stdout] 251 | while vertex != (startx, starty) && prev_vert.get(&vertex).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&vertex)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WALL` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | WALL, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wall` [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 `FLOOR` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | FLOOR [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Floor` [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: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/tile.rs:34:29 [INFO] [stdout] | [INFO] [stdout] 34 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 35 | | match self { [INFO] [stdout] 36 | | TileType::WALL => {Self::WALL} [INFO] [stdout] 37 | | TileType::FLOOR => {Self::FLOOR} [INFO] [stdout] 38 | | } [INFO] [stdout] 39 | | } [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#non_canonical_clone_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_clone_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/main.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | &window.set_mouse_grab(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `window.set_mouse_grab(true);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] = note: `#[warn(clippy::unnecessary_operation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BIG` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | BIG, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Big` [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 `MEDIUM` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | MEDIUM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Medium` [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 `SMALL` contains a capitalized acronym [INFO] [stdout] --> src/tile.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | SMALL [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Small` [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: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/tile.rs:111:29 [INFO] [stdout] | [INFO] [stdout] 111 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 112 | | match self { [INFO] [stdout] 113 | | TileSize::BIG => {Self::BIG} [INFO] [stdout] 114 | | TileSize::MEDIUM => {Self::MEDIUM} [INFO] [stdout] ... | [INFO] [stdout] 117 | | } [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#non_canonical_clone_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/tile.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | / pub fn create( [INFO] [stdout] 146 | | name : String, [INFO] [stdout] 147 | | resource_location : ResourceLocation, [INFO] [stdout] 148 | | texture : ResourceLocation, [INFO] [stdout] ... | [INFO] [stdout] 154 | | collision_box : Option<(u32, u32)> [INFO] [stdout] 155 | | ) -> Self { [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 `TileType` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.tile_type.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tile_type` [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 `TileType` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:263:24 [INFO] [stdout] | [INFO] [stdout] 263 | tile_type: self.tile_type.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tile_type` [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 `TileSize` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:264:19 [INFO] [stdout] | [INFO] [stdout] 264 | size: self.size.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:265:21 [INFO] [stdout] | [INFO] [stdout] 265 | origin: self.origin.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.origin` [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/tile.rs:266:24 [INFO] [stdout] | [INFO] [stdout] 266 | collision: self.collision.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.collision` [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 `Option<(u32, u32)>` which implements the `Copy` trait [INFO] [stdout] --> src/tile.rs:267:28 [INFO] [stdout] | [INFO] [stdout] 267 | collision_box: self.collision_box.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.collision_box` [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: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:234:25 [INFO] [stdout] | [INFO] [stdout] 234 | &*namespace.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&namespace.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `resource_location::ResourceLocation` [INFO] [stdout] --> src/resource_location.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn to_string(&self) -> String { [INFO] [stdout] 47 | | format!("{}:{}", self.namespace, self.path) [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `resource_location::ResourceLocation` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Split<'_, &str>` [INFO] [stdout] --> src/resource_location.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | let vals = value.split(":").into_iter().collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `value.split(":")` [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] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `vals.get(0)` [INFO] [stdout] --> src/resource_location.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | Self::new(vals.get(0).unwrap(), vals.get(1).unwrap()) [INFO] [stdout] | ^^^^^^^^^^^ help: try: `vals.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/screen.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | fn set_game(&mut self, game : *mut Game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove `must_use` [INFO] [stdout] --> src/screen.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | #[must_use] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/screen.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let _ = w.set_selected(false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 41 - let _ = w.set_selected(false); [INFO] [stdout] 41 + w.set_selected(false); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:331:25 [INFO] [stdout] | [INFO] [stdout] 331 | &*namespace.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&namespace.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/screen.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let _ = w.set_selected(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 49 - let _ = w.set_selected(true); [INFO] [stdout] 49 + w.set_selected(true); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/play_widget.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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] --> src/main.rs:398:21 [INFO] [stdout] | [INFO] [stdout] 398 | &textures.get("memory_game:background.png").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `textures.get("memory_game:background.png").unwrap()` [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: statement with no effect [INFO] [stdout] --> src/widgets/play_widget.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] = note: `#[warn(clippy::no_effect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/main.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | &window.set_mouse_grab(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 110 | let _ = &window.set_mouse_grab(true); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/enum_widget.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: unused return value of `entity::Entity::set_coords` that must be used [INFO] [stdout] --> src/game.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | dummy_player.set_coords((0.0, 0.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 233 | let _ = dummy_player.set_coords((0.0, 0.0)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/err_widget.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/score_widget.rs:88:44 [INFO] [stdout] | [INFO] [stdout] 88 | let score_as_string = format!("{}",game.score.clone() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `game.score` [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: the variable `counter` is used as a loop counter [INFO] [stdout] --> src/widgets/score_widget.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | for character in score_as_string.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (counter, character) in score_as_string.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/quit_widget.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/quit_widget.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/player_widget.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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] --> src/widgets/player_widget.rs:120:93 [INFO] [stdout] | [INFO] [stdout] 120 | render::draw_pp_texture(x_y.0, x_y.1, &self.get_debug_asset_data(), canvas, sf, &textures); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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/widgets/player_widget.rs:122:83 [INFO] [stdout] | [INFO] [stdout] 122 | render::draw_pp_texture(x_y.0, x_y.1, &self.get_asset_data(), canvas, sf, &textures); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `textures` [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 `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/play_again_widget.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/play_again_widget.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/end_screen_quit_widget.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(i32, i32)` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/crown_widget.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | self.coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.coords` [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: statement with no effect [INFO] [stdout] --> src/widgets/crown_widget.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | self.game; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 13 | fn on_click(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 19 | fn set_selected(&mut self, tf : bool); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 24 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 25 | fn set_screen_coordinates(&mut self, x : i32, y : i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 63 | fn set_asset_data(&mut self, ass : AssetData); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 71 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 72 | fn set_allignment(&mut self, alignment: Alignment); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this unit-returning function has a `#[must_use]` attribute [INFO] [stdout] --> src/widget.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 74 | #[must_use] [INFO] [stdout] | ----------- help: remove the attribute [INFO] [stdout] 75 | fn get_game(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [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 `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [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 `TOP` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | TOP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Top` [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 `BOTTOM` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | BOTTOM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bottom` [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 `CENTRE` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | CENTRE, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Centre` [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 `NONE` contains a capitalized acronym [INFO] [stdout] --> src/widget.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | NONE [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `None` [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: called `unwrap` on `stuff` after checking its variant with `is_ok` [INFO] [stdout] --> src/sound.rs:33:43 [INFO] [stdout] | [INFO] [stdout] 32 | if stuff.is_ok() { [INFO] [stdout] | ---------------- help: try: `if let Ok() = stuff` [INFO] [stdout] 33 | let (stream, stream_handle) = stuff.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/main.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | &window.set_mouse_grab(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `window.set_mouse_grab(true);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] = note: `#[warn(clippy::unnecessary_operation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:234:25 [INFO] [stdout] | [INFO] [stdout] 234 | &*namespace.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&namespace.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:331:25 [INFO] [stdout] | [INFO] [stdout] 331 | &*namespace.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&namespace.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:398:21 [INFO] [stdout] | [INFO] [stdout] 398 | &textures.get("memory_game:background.png").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `textures.get("memory_game:background.png").unwrap()` [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: unused borrow that must be used [INFO] [stdout] --> src/main.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | &window.set_mouse_grab(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 110 | let _ = &window.set_mouse_grab(true); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `entity::Entity::set_coords` that must be used [INFO] [stdout] --> src/game.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | dummy_player.set_coords((0.0, 0.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 233 | let _ = dummy_player.set_coords((0.0, 0.0)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s [INFO] running `Command { std: "docker" "inspect" "632097e03e15ae21cbc8285b05f122e0a201bf9bd436ca7682c5142ff53a5f3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "632097e03e15ae21cbc8285b05f122e0a201bf9bd436ca7682c5142ff53a5f3d", kill_on_drop: false }` [INFO] [stdout] 632097e03e15ae21cbc8285b05f122e0a201bf9bd436ca7682c5142ff53a5f3d