[INFO] cloning repository https://github.com/Alkamist/FightingGameRust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Alkamist/FightingGameRust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlkamist%2FFightingGameRust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlkamist%2FFightingGameRust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1cd5927689c1952c0f86457cc5e573bbb05511fe [INFO] linting Alkamist/FightingGameRust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlkamist%2FFightingGameRust" "/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/Alkamist/FightingGameRust [INFO] finished tweaking git repo https://github.com/Alkamist/FightingGameRust [INFO] tweaked toml for git repo https://github.com/Alkamist/FightingGameRust written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Alkamist/FightingGameRust 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/Alkamist/FightingGameRust 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 pistoncore-window v0.47.0 [INFO] [stderr] Downloaded shader_version v0.7.0 [INFO] [stderr] Downloaded piston-viewport v1.0.0 [INFO] [stderr] Downloaded proc-macro2 v1.0.19 [INFO] [stderr] Downloaded find_folder v0.3.0 [INFO] [stderr] Downloaded gfx_gl v0.6.1 [INFO] [stderr] Downloaded pistoncore-event_loop v0.52.0 [INFO] [stderr] Downloaded draw_state v0.8.0 [INFO] [stderr] Downloaded gfx v0.18.2 [INFO] [stderr] Downloaded gfx_device_gl v0.16.2 [INFO] [stderr] Downloaded rayon-core v1.7.1 [INFO] [stderr] Downloaded backtrace v0.3.50 [INFO] [stderr] Downloaded smithay-client-toolkit v0.4.6 [INFO] [stderr] Downloaded wayland-protocols v0.21.13 [INFO] [stderr] Downloaded cc v1.0.59 [INFO] [stderr] Downloaded syn v1.0.39 [INFO] [stderr] Downloaded rayon v1.3.1 [INFO] [stderr] Downloaded object v0.20.0 [INFO] [stderr] Downloaded image v0.23.8 [INFO] [stderr] Downloaded winit v0.19.5 [INFO] [stderr] Downloaded glutin v0.21.2 [INFO] [stderr] Downloaded png v0.16.7 [INFO] [stderr] Downloaded miniz_oxide v0.4.1 [INFO] [stderr] Downloaded piston2d-gfx_graphics v0.69.0 [INFO] [stderr] Downloaded cocoa v0.18.5 [INFO] [stderr] Downloaded wayland-client v0.21.13 [INFO] [stderr] Downloaded gfx_core v0.9.2 [INFO] [stderr] Downloaded num-rational v0.3.0 [INFO] [stderr] Downloaded addr2line v0.13.0 [INFO] [stderr] Downloaded wayland-commons v0.21.13 [INFO] [stderr] Downloaded libloading v0.6.3 [INFO] [stderr] Downloaded bytemuck v1.3.1 [INFO] [stderr] Downloaded gif v0.10.3 [INFO] [stderr] Downloaded num-integer v0.1.43 [INFO] [stderr] Downloaded tiff v0.5.0 [INFO] [stderr] Downloaded piston2d-graphics v0.36.0 [INFO] [stderr] Downloaded gl_generator v0.10.0 [INFO] [stderr] Downloaded pkg-config v0.3.18 [INFO] [stderr] Downloaded piston_window v0.111.0 [INFO] [stderr] Downloaded memoffset v0.5.5 [INFO] [stderr] Downloaded vecmath v1.0.0 [INFO] [stderr] Downloaded wayland-scanner v0.21.13 [INFO] [stderr] Downloaded pistoncore-glutin_window v0.66.0 [INFO] [stderr] Downloaded either v1.6.0 [INFO] [stderr] Downloaded gimli v0.22.0 [INFO] [stderr] Downloaded piston-texture v0.8.0 [INFO] [stderr] Downloaded adler v0.2.3 [INFO] [stderr] Downloaded piston v0.52.0 [INFO] [stderr] Downloaded piston-float v1.0.0 [INFO] [stderr] Downloaded num-iter v0.1.41 [INFO] [stderr] Downloaded piston-gfx_texture v0.41.0 [INFO] [stderr] Downloaded gl v0.11.0 [INFO] [stderr] Downloaded ordered-float v1.1.0 [INFO] [stderr] Downloaded wayland-sys v0.21.13 [INFO] [stderr] Downloaded pistoncore-input v1.0.0 [INFO] [stderr] Downloaded piston-graphics_api_version v1.0.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] 298dcdedce5422987825efb3202c6fd643ed6fafe11a2351e25c3649f476cd8c [INFO] running `Command { std: "docker" "start" "-a" "298dcdedce5422987825efb3202c6fd643ed6fafe11a2351e25c3649f476cd8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "298dcdedce5422987825efb3202c6fd643ed6fafe11a2351e25c3649f476cd8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "298dcdedce5422987825efb3202c6fd643ed6fafe11a2351e25c3649f476cd8c", kill_on_drop: false }` [INFO] [stdout] 298dcdedce5422987825efb3202c6fd643ed6fafe11a2351e25c3649f476cd8c [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] a2f554406c7c22b97d9c8fd86d649558fbd64e5d6d06aaf990bfd7807e549601 [INFO] running `Command { std: "docker" "start" "-a" "a2f554406c7c22b97d9c8fd86d649558fbd64e5d6d06aaf990bfd7807e549601", kill_on_drop: false }` [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling libc v0.2.76 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling libloading v0.6.3 [INFO] [stderr] Compiling memoffset v0.5.5 [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Checking piston-float v1.0.0 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling syn v1.0.39 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Compiling rayon-core v1.7.1 [INFO] [stderr] Checking piston-viewport v1.0.0 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling pkg-config v0.3.18 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Compiling serde_derive v1.0.115 [INFO] [stderr] Compiling serde v1.0.115 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Checking dlib v0.4.2 [INFO] [stderr] Checking piston-graphics_api_version v1.0.0 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Checking miniz_oxide v0.3.7 [INFO] [stderr] Checking draw_state v0.8.0 [INFO] [stderr] Checking wayland-sys v0.21.13 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Checking stb_truetype v0.3.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.21.13 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Compiling num-rational v0.3.0 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking xdg v2.2.0 [INFO] [stderr] Checking either v1.6.0 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Compiling cc v1.0.59 [INFO] [stderr] Checking gfx_core v0.9.2 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking ordered-float v1.1.0 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Checking line_drawing v0.7.0 [INFO] [stderr] Compiling gl_generator v0.10.0 [INFO] [stderr] Checking deflate v0.8.6 [INFO] [stderr] Checking parking_lot_core v0.6.2 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking color_quant v1.0.1 [INFO] [stderr] Checking rusttype v0.8.3 [INFO] [stderr] Checking png v0.16.7 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Checking parking_lot v0.9.0 [INFO] [stderr] Checking tiff v0.5.0 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Checking raw-window-handle v0.3.3 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Checking rusttype v0.7.9 [INFO] [stderr] Checking bytemuck v1.3.1 [INFO] [stderr] Checking piston-texture v0.8.0 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking andrew v0.2.1 [INFO] [stderr] Checking shader_version v0.7.0 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling gl v0.11.0 [INFO] [stderr] Compiling gfx_gl v0.6.1 [INFO] [stderr] Checking vecmath v1.0.0 [INFO] [stderr] Checking read_color v1.0.0 [INFO] [stderr] Checking interpolation v0.2.0 [INFO] [stderr] Checking piston-shaders_graphics2d v0.3.1 [INFO] [stderr] Checking find_folder v0.3.0 [INFO] [stderr] Checking gfx v0.18.2 [INFO] [stderr] Checking piston2d-graphics v0.36.0 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling wayland-client v0.21.13 [INFO] [stderr] Compiling wayland-protocols v0.21.13 [INFO] [stderr] Checking jpeg-decoder v0.1.20 [INFO] [stderr] Checking wayland-commons v0.21.13 [INFO] [stderr] Checking image v0.23.8 [INFO] [stderr] Checking gfx_device_gl v0.16.2 [INFO] [stderr] Checking piston-gfx_texture v0.41.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.69.0 [INFO] [stderr] Checking pistoncore-input v1.0.0 [INFO] [stderr] Checking pistoncore-window v0.47.0 [INFO] [stderr] Checking pistoncore-event_loop v0.52.0 [INFO] [stderr] Checking piston v0.52.0 [INFO] [stderr] Checking smithay-client-toolkit v0.4.6 [INFO] [stderr] Checking winit v0.19.5 [INFO] [stderr] Checking glutin v0.21.2 [INFO] [stderr] Checking pistoncore-glutin_window v0.66.0 [INFO] [stderr] Checking piston_window v0.111.0 [INFO] [stderr] Checking fighting_game v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::f64::consts::PI` [INFO] [stdout] --> src/fighter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::f64::consts::PI; [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: `std::f64::consts::PI` [INFO] [stdout] --> src/fighter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::f64::consts::PI; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `lerp` is never used [INFO] [stdout] --> src/point_math.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn lerp(&self, other_point: &Self, interpolation: f64) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `angle`, `invert`, `inverse`, `rotate`, and `with_rotation` are never used [INFO] [stdout] --> src/vector_math.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Vector { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn angle(&self) -> f64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn invert(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn inverse(&self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn rotate(&mut self, rotation: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn with_rotation(&self, rotation: f64) -> Vector { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default` is never used [INFO] [stdout] --> src/line_math.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 11 | pub fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `just_released` is never used [INFO] [stdout] --> src/button.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Button { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn just_released(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `just_deactivated` is never used [INFO] [stdout] --> src/analog_axis.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl AnalogAxis { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn just_deactivated(&self) -> bool { self.was_previously_active && !self.is_active() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/fighter.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Fighter { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 14 | pub ground_angle: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | pub air_jumps_left: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub previous_state: FighterState, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 20 | pub state_frame: u32, [INFO] [stdout] 21 | pub dash_should_reset_velocity: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 22 | pub run_turn_melee_frame: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | pub run_turn_was_facing_right_initially: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | pub run_turn_has_changed_direction: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | pub run_turn_has_fully_turned: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | [INFO] [stdout] 27 | pub ground_friction: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | pub dash_start_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub dash_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 30 | pub dash_base_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | pub dash_axis_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub walk_start_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub walk_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub walk_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | pub air_friction: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 36 | pub air_base_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub air_axis_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | pub air_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | pub jump_squat_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | pub jump_velocity_dampening: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 41 | pub jump_max_horizontal_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 42 | pub jump_start_horizontal_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 43 | pub short_hop_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | pub full_hop_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | pub fall_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 46 | pub fast_fall_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | pub air_jump_velocity_multiplier: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub air_jump_horizontal_axis_multiplier: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | pub air_jumps: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | pub gravity: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 51 | pub dash_min_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | pub dash_max_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | pub slow_dash_back_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 54 | pub turn_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 55 | pub run_brake_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/fighter.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 157 | pub fn change_state(&mut self, new_state: FighterState) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn just_turned(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn can_land(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn land(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn should_jump(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn jump_is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn x_axis_is_forward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn x_axis_is_backward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn x_axis_smashed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn y_axis_smashed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/fighter.rs:289:8 [INFO] [stdout] | [INFO] [stdout] 235 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 289 | fn handle_horizontal_air_movement(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | fn handle_fast_fall(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn handle_gravity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | fn apply_rotated_horizontal_velocity_change(&mut self, velocity_change: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | fn apply_rotated_horizontal_friction(&mut self, friction: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | fn calculate_friction_delta(&self, velocity: f64, friction: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | fn apply_rotated_horizontal_acceleration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | fn calculate_acceleration_delta( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/fighter.rs:385:5 [INFO] [stdout] | [INFO] [stdout] 383 | pub enum FighterState { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 384 | Idle, [INFO] [stdout] 385 | Turn, [INFO] [stdout] | ^^^^ [INFO] [stdout] 386 | Walk, [INFO] [stdout] | ^^^^ [INFO] [stdout] 387 | Dash, [INFO] [stdout] | ^^^^ [INFO] [stdout] 388 | Run, [INFO] [stdout] | ^^^ [INFO] [stdout] 389 | RunBrake, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 390 | RunTurn, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 391 | JumpSquat, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 392 | Airborne, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 393 | AirDodge, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 394 | Land, [INFO] [stdout] | ^^^^ [INFO] [stdout] 395 | LandSpecial, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FighterState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_idle_transition` and `state_idle_update` are never used [INFO] [stdout] --> src/fighter.rs:400:8 [INFO] [stdout] | [INFO] [stdout] 399 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 400 | fn state_idle_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | fn state_idle_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_turn_transition` and `state_turn_update` are never used [INFO] [stdout] --> src/fighter.rs:425:8 [INFO] [stdout] | [INFO] [stdout] 424 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 425 | fn state_turn_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 442 | fn state_turn_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_walk_transition` and `state_walk_update` are never used [INFO] [stdout] --> src/fighter.rs:467:8 [INFO] [stdout] | [INFO] [stdout] 466 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 467 | fn state_walk_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn state_walk_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_dash_transition` and `state_dash_update` are never used [INFO] [stdout] --> src/fighter.rs:511:8 [INFO] [stdout] | [INFO] [stdout] 510 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 511 | fn state_dash_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 533 | fn state_dash_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_transition` and `state_run_update` are never used [INFO] [stdout] --> src/fighter.rs:573:8 [INFO] [stdout] | [INFO] [stdout] 572 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 573 | fn state_run_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 585 | fn state_run_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_brake_transition` and `state_run_brake_update` are never used [INFO] [stdout] --> src/fighter.rs:596:8 [INFO] [stdout] | [INFO] [stdout] 595 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 596 | fn state_run_brake_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 614 | fn state_run_brake_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_turn_transition` and `state_run_turn_update` are never used [INFO] [stdout] --> src/fighter.rs:622:8 [INFO] [stdout] | [INFO] [stdout] 621 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 622 | fn state_run_turn_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 640 | fn state_run_turn_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_jump_squat_transition` and `state_jump_squat_update` are never used [INFO] [stdout] --> src/fighter.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 681 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 682 | fn state_jump_squat_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 692 | fn state_jump_squat_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_airborne_transition` and `state_airborne_update` are never used [INFO] [stdout] --> src/fighter.rs:700:8 [INFO] [stdout] | [INFO] [stdout] 699 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 700 | fn state_airborne_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | fn state_airborne_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_air_dodge_transition` and `state_air_dodge_update` are never used [INFO] [stdout] --> src/fighter.rs:745:8 [INFO] [stdout] | [INFO] [stdout] 744 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 745 | fn state_air_dodge_transition(&mut self) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 746 | [INFO] [stdout] 747 | fn state_air_dodge_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_land_transition` and `state_land_update` are never used [INFO] [stdout] --> src/fighter.rs:781:8 [INFO] [stdout] | [INFO] [stdout] 780 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 781 | fn state_land_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 787 | fn state_land_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_land_special_transition` and `state_land_special_update` are never used [INFO] [stdout] --> src/fighter.rs:806:8 [INFO] [stdout] | [INFO] [stdout] 805 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 806 | fn state_land_special_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 830 | fn state_land_special_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `lerp` is never used [INFO] [stdout] --> src/point_math.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Point { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn lerp(&self, other_point: &Self, interpolation: f64) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `angle`, `invert`, `inverse`, `rotate`, and `with_rotation` are never used [INFO] [stdout] --> src/vector_math.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Vector { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn angle(&self) -> f64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn invert(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn inverse(&self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn rotate(&mut self, rotation: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn with_rotation(&self, rotation: f64) -> Vector { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default` is never used [INFO] [stdout] --> src/line_math.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 11 | pub fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `just_released` is never used [INFO] [stdout] --> src/button.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Button { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn just_released(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `just_deactivated` is never used [INFO] [stdout] --> src/analog_axis.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl AnalogAxis { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn just_deactivated(&self) -> bool { self.was_previously_active && !self.is_active() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/fighter.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Fighter { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 14 | pub ground_angle: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | pub air_jumps_left: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub previous_state: FighterState, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 20 | pub state_frame: u32, [INFO] [stdout] 21 | pub dash_should_reset_velocity: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 22 | pub run_turn_melee_frame: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | pub run_turn_was_facing_right_initially: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | pub run_turn_has_changed_direction: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | pub run_turn_has_fully_turned: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | [INFO] [stdout] 27 | pub ground_friction: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | pub dash_start_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub dash_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 30 | pub dash_base_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | pub dash_axis_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub walk_start_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub walk_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub walk_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | pub air_friction: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 36 | pub air_base_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub air_axis_acceleration: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | pub air_max_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | pub jump_squat_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | pub jump_velocity_dampening: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 41 | pub jump_max_horizontal_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 42 | pub jump_start_horizontal_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 43 | pub short_hop_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | pub full_hop_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | pub fall_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 46 | pub fast_fall_velocity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | pub air_jump_velocity_multiplier: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub air_jump_horizontal_axis_multiplier: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | pub air_jumps: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | pub gravity: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 51 | pub dash_min_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | pub dash_max_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | pub slow_dash_back_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 54 | pub turn_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 55 | pub run_brake_frames: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/fighter.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 157 | pub fn change_state(&mut self, new_state: FighterState) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn just_turned(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn can_land(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn land(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn should_jump(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn jump_is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn x_axis_is_forward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn x_axis_is_backward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn x_axis_smashed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn y_axis_smashed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/fighter.rs:289:8 [INFO] [stdout] | [INFO] [stdout] 235 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 289 | fn handle_horizontal_air_movement(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | fn handle_fast_fall(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn handle_gravity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | fn apply_rotated_horizontal_velocity_change(&mut self, velocity_change: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | fn apply_rotated_horizontal_friction(&mut self, friction: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | fn calculate_friction_delta(&self, velocity: f64, friction: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | fn apply_rotated_horizontal_acceleration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | fn calculate_acceleration_delta( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/fighter.rs:385:5 [INFO] [stdout] | [INFO] [stdout] 383 | pub enum FighterState { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 384 | Idle, [INFO] [stdout] 385 | Turn, [INFO] [stdout] | ^^^^ [INFO] [stdout] 386 | Walk, [INFO] [stdout] | ^^^^ [INFO] [stdout] 387 | Dash, [INFO] [stdout] | ^^^^ [INFO] [stdout] 388 | Run, [INFO] [stdout] | ^^^ [INFO] [stdout] 389 | RunBrake, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 390 | RunTurn, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 391 | JumpSquat, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 392 | Airborne, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 393 | AirDodge, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 394 | Land, [INFO] [stdout] | ^^^^ [INFO] [stdout] 395 | LandSpecial, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FighterState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_idle_transition` and `state_idle_update` are never used [INFO] [stdout] --> src/fighter.rs:400:8 [INFO] [stdout] | [INFO] [stdout] 399 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 400 | fn state_idle_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | fn state_idle_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_turn_transition` and `state_turn_update` are never used [INFO] [stdout] --> src/fighter.rs:425:8 [INFO] [stdout] | [INFO] [stdout] 424 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 425 | fn state_turn_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 442 | fn state_turn_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_walk_transition` and `state_walk_update` are never used [INFO] [stdout] --> src/fighter.rs:467:8 [INFO] [stdout] | [INFO] [stdout] 466 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 467 | fn state_walk_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn state_walk_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_dash_transition` and `state_dash_update` are never used [INFO] [stdout] --> src/fighter.rs:511:8 [INFO] [stdout] | [INFO] [stdout] 510 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 511 | fn state_dash_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 533 | fn state_dash_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_transition` and `state_run_update` are never used [INFO] [stdout] --> src/fighter.rs:573:8 [INFO] [stdout] | [INFO] [stdout] 572 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 573 | fn state_run_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 585 | fn state_run_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_brake_transition` and `state_run_brake_update` are never used [INFO] [stdout] --> src/fighter.rs:596:8 [INFO] [stdout] | [INFO] [stdout] 595 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 596 | fn state_run_brake_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 614 | fn state_run_brake_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_run_turn_transition` and `state_run_turn_update` are never used [INFO] [stdout] --> src/fighter.rs:622:8 [INFO] [stdout] | [INFO] [stdout] 621 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 622 | fn state_run_turn_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 640 | fn state_run_turn_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_jump_squat_transition` and `state_jump_squat_update` are never used [INFO] [stdout] --> src/fighter.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 681 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 682 | fn state_jump_squat_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 692 | fn state_jump_squat_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_airborne_transition` and `state_airborne_update` are never used [INFO] [stdout] --> src/fighter.rs:700:8 [INFO] [stdout] | [INFO] [stdout] 699 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 700 | fn state_airborne_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | fn state_airborne_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_air_dodge_transition` and `state_air_dodge_update` are never used [INFO] [stdout] --> src/fighter.rs:745:8 [INFO] [stdout] | [INFO] [stdout] 744 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 745 | fn state_air_dodge_transition(&mut self) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 746 | [INFO] [stdout] 747 | fn state_air_dodge_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state_land_transition` and `state_land_update` are never used [INFO] [stdout] --> src/fighter.rs:781:8 [INFO] [stdout] | [INFO] [stdout] 780 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 781 | fn state_land_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 787 | fn state_land_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/line_math.rs:99:42 [INFO] [stdout] | [INFO] [stdout] 99 | self.contains_colinear_point(&point) [INFO] [stdout] | ^^^^^^ help: change this to: `point` [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 `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:116:73 [INFO] [stdout] | [INFO] [stdout] 116 | if orientation0 != orientation1 && orientation2 != orientation3 { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 117 | | true [INFO] [stdout] 118 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:120:64 [INFO] [stdout] | [INFO] [stdout] 120 | && line_a.contains_colinear_point(&line_b.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 121 | | true [INFO] [stdout] 122 | | } [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: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:120:64 [INFO] [stdout] | [INFO] [stdout] 120 | && line_a.contains_colinear_point(&line_b.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 121 | | true [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:124:64 [INFO] [stdout] | [INFO] [stdout] 124 | && line_a.contains_colinear_point(&line_b.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 125 | | true [INFO] [stdout] 126 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: methods `state_land_special_transition` and `state_land_special_update` are never used [INFO] [stdout] --> src/fighter.rs:806:8 [INFO] [stdout] | [INFO] [stdout] 805 | impl Fighter { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 806 | fn state_land_special_transition(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 830 | fn state_land_special_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:124:64 [INFO] [stdout] | [INFO] [stdout] 124 | && line_a.contains_colinear_point(&line_b.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 125 | | true [INFO] [stdout] 126 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:128:64 [INFO] [stdout] | [INFO] [stdout] 128 | && line_b.contains_colinear_point(&line_a.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 129 | | true [INFO] [stdout] 130 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:128:64 [INFO] [stdout] | [INFO] [stdout] 128 | && line_b.contains_colinear_point(&line_a.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 129 | | true [INFO] [stdout] 130 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:132:64 [INFO] [stdout] | [INFO] [stdout] 132 | && line_b.contains_colinear_point(&line_a.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 133 | | true [INFO] [stdout] 134 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/line_math.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | else if orientation3 == point_math::Orientation::Colinear [INFO] [stdout] | ______________^ [INFO] [stdout] 132 | | && line_b.contains_colinear_point(&line_a.point_b) { [INFO] [stdout] 133 | | true [INFO] [stdout] ... | [INFO] [stdout] 136 | | false [INFO] [stdout] 137 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `{ orientation3 == point_math::Orientation::Colinear && line_b.contains_colinear_point(&line_a.point_b) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line_math.rs:247:32 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn from_points(points: &Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 247 - pub fn from_points(points: &Vec) -> Self { [INFO] [stdout] 247 + pub fn from_points(points: &[Point]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/line_math.rs:99:42 [INFO] [stdout] | [INFO] [stdout] 99 | self.contains_colinear_point(&point) [INFO] [stdout] | ^^^^^^ help: change this to: `point` [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 `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:116:73 [INFO] [stdout] | [INFO] [stdout] 116 | if orientation0 != orientation1 && orientation2 != orientation3 { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 117 | | true [INFO] [stdout] 118 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:120:64 [INFO] [stdout] | [INFO] [stdout] 120 | && line_a.contains_colinear_point(&line_b.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 121 | | true [INFO] [stdout] 122 | | } [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: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:120:64 [INFO] [stdout] | [INFO] [stdout] 120 | && line_a.contains_colinear_point(&line_b.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 121 | | true [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:124:64 [INFO] [stdout] | [INFO] [stdout] 124 | && line_a.contains_colinear_point(&line_b.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 125 | | true [INFO] [stdout] 126 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:124:64 [INFO] [stdout] | [INFO] [stdout] 124 | && line_a.contains_colinear_point(&line_b.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 125 | | true [INFO] [stdout] 126 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:128:64 [INFO] [stdout] | [INFO] [stdout] 128 | && line_b.contains_colinear_point(&line_a.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 129 | | true [INFO] [stdout] 130 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/line_math.rs:128:64 [INFO] [stdout] | [INFO] [stdout] 128 | && line_b.contains_colinear_point(&line_a.point_a) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 129 | | true [INFO] [stdout] 130 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/line_math.rs:132:64 [INFO] [stdout] | [INFO] [stdout] 132 | && line_b.contains_colinear_point(&line_a.point_b) { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 133 | | true [INFO] [stdout] 134 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/line_math.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | else if orientation3 == point_math::Orientation::Colinear [INFO] [stdout] | ______________^ [INFO] [stdout] 132 | | && line_b.contains_colinear_point(&line_a.point_b) { [INFO] [stdout] 133 | | true [INFO] [stdout] ... | [INFO] [stdout] 136 | | false [INFO] [stdout] 137 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `{ orientation3 == point_math::Orientation::Colinear && line_b.contains_colinear_point(&line_a.point_b) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/digital_input.rs:61:39 [INFO] [stdout] | [INFO] [stdout] 61 | ButtonState::Press => match args.button { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 62 | | Button::Keyboard(key) => match key { [INFO] [stdout] 63 | | Key::A => self.left = true, [INFO] [stdout] 64 | | Key::D => self.right = true, [INFO] [stdout] ... | [INFO] [stdout] 79 | | _ => () [INFO] [stdout] 80 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 61 ~ ButtonState::Press => if let Button::Keyboard(key) = args.button { match key { [INFO] [stdout] 62 + Key::A => self.left = true, [INFO] [stdout] 63 + Key::D => self.right = true, [INFO] [stdout] 64 + Key::S => self.down = true, [INFO] [stdout] 65 + Key::W => self.up = true, [INFO] [stdout] 66 + Key::Backslash => self.x = true, [INFO] [stdout] 67 + Key::LeftBracket => self.y = true, [INFO] [stdout] 68 + Key::Equals => self.z = true, [INFO] [stdout] 69 + Key::Semicolon => self.l = true, [INFO] [stdout] 70 + Key::RightBracket => self.r = true, [INFO] [stdout] 71 + Key::D5 => self.start = true, [INFO] [stdout] 72 + Key::V => self.d_left = true, [INFO] [stdout] 73 + Key::N => self.d_right = true, [INFO] [stdout] 74 + Key::B => self.d_down = true, [INFO] [stdout] 75 + Key::G => self.d_up = true, [INFO] [stdout] 76 + _ => () [INFO] [stdout] 77 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line_math.rs:247:32 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn from_points(points: &Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 247 - pub fn from_points(points: &Vec) -> Self { [INFO] [stdout] 247 + pub fn from_points(points: &[Point]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/digital_input.rs:81:41 [INFO] [stdout] | [INFO] [stdout] 81 | ButtonState::Release => match args.button { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 82 | | Button::Keyboard(key) => match key { [INFO] [stdout] 83 | | Key::A => self.left = false, [INFO] [stdout] 84 | | Key::D => self.right = false, [INFO] [stdout] ... | [INFO] [stdout] 99 | | _ => () [INFO] [stdout] 100 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ ButtonState::Release => if let Button::Keyboard(key) = args.button { match key { [INFO] [stdout] 82 + Key::A => self.left = false, [INFO] [stdout] 83 + Key::D => self.right = false, [INFO] [stdout] 84 + Key::S => self.down = false, [INFO] [stdout] 85 + Key::W => self.up = false, [INFO] [stdout] 86 + Key::Backslash => self.x = false, [INFO] [stdout] 87 + Key::LeftBracket => self.y = false, [INFO] [stdout] 88 + Key::Equals => self.z = false, [INFO] [stdout] 89 + Key::Semicolon => self.l = false, [INFO] [stdout] 90 + Key::RightBracket => self.r = false, [INFO] [stdout] 91 + Key::D5 => self.start = false, [INFO] [stdout] 92 + Key::V => self.d_left = false, [INFO] [stdout] 93 + Key::N => self.d_right = false, [INFO] [stdout] 94 + Key::B => self.d_down = false, [INFO] [stdout] 95 + Key::G => self.d_up = false, [INFO] [stdout] 96 + _ => () [INFO] [stdout] 97 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fighter.rs:238:32 [INFO] [stdout] | [INFO] [stdout] 238 | self.input.copy_inputs(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [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: unneeded `return` statement [INFO] [stdout] --> src/fighter.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | return axis.direction() * acceleration_abs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 376 - return axis.direction() * acceleration_abs; [INFO] [stdout] 376 + axis.direction() * acceleration_abs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/digital_input.rs:61:39 [INFO] [stdout] | [INFO] [stdout] 61 | ButtonState::Press => match args.button { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 62 | | Button::Keyboard(key) => match key { [INFO] [stdout] 63 | | Key::A => self.left = true, [INFO] [stdout] 64 | | Key::D => self.right = true, [INFO] [stdout] ... | [INFO] [stdout] 79 | | _ => () [INFO] [stdout] 80 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 61 ~ ButtonState::Press => if let Button::Keyboard(key) = args.button { match key { [INFO] [stdout] 62 + Key::A => self.left = true, [INFO] [stdout] 63 + Key::D => self.right = true, [INFO] [stdout] 64 + Key::S => self.down = true, [INFO] [stdout] 65 + Key::W => self.up = true, [INFO] [stdout] 66 + Key::Backslash => self.x = true, [INFO] [stdout] 67 + Key::LeftBracket => self.y = true, [INFO] [stdout] 68 + Key::Equals => self.z = true, [INFO] [stdout] 69 + Key::Semicolon => self.l = true, [INFO] [stdout] 70 + Key::RightBracket => self.r = true, [INFO] [stdout] 71 + Key::D5 => self.start = true, [INFO] [stdout] 72 + Key::V => self.d_left = true, [INFO] [stdout] 73 + Key::N => self.d_right = true, [INFO] [stdout] 74 + Key::B => self.d_down = true, [INFO] [stdout] 75 + Key::G => self.d_up = true, [INFO] [stdout] 76 + _ => () [INFO] [stdout] 77 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/digital_input.rs:81:41 [INFO] [stdout] | [INFO] [stdout] 81 | ButtonState::Release => match args.button { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 82 | | Button::Keyboard(key) => match key { [INFO] [stdout] 83 | | Key::A => self.left = false, [INFO] [stdout] 84 | | Key::D => self.right = false, [INFO] [stdout] ... | [INFO] [stdout] 99 | | _ => () [INFO] [stdout] 100 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ ButtonState::Release => if let Button::Keyboard(key) = args.button { match key { [INFO] [stdout] 82 + Key::A => self.left = false, [INFO] [stdout] 83 + Key::D => self.right = false, [INFO] [stdout] 84 + Key::S => self.down = false, [INFO] [stdout] 85 + Key::W => self.up = false, [INFO] [stdout] 86 + Key::Backslash => self.x = false, [INFO] [stdout] 87 + Key::LeftBracket => self.y = false, [INFO] [stdout] 88 + Key::Equals => self.z = false, [INFO] [stdout] 89 + Key::Semicolon => self.l = false, [INFO] [stdout] 90 + Key::RightBracket => self.r = false, [INFO] [stdout] 91 + Key::D5 => self.start = false, [INFO] [stdout] 92 + Key::V => self.d_left = false, [INFO] [stdout] 93 + Key::N => self.d_right = false, [INFO] [stdout] 94 + Key::B => self.d_down = false, [INFO] [stdout] 95 + Key::G => self.d_up = false, [INFO] [stdout] 96 + _ => () [INFO] [stdout] 97 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighter.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | / match self.previous_state { [INFO] [stdout] 445 | | FighterState::Dash => { [INFO] [stdout] 446 | | // I'm unsure where the 1.73 here comes from but it is necessary for now. [INFO] [stdout] 447 | | self.apply_rotated_horizontal_velocity_change(-self.velocity.x.signum() * 1.73); [INFO] [stdout] 448 | | }, [INFO] [stdout] 449 | | _ => () [INFO] [stdout] 450 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 444 ~ if self.previous_state == FighterState::Dash { [INFO] [stdout] 445 + // I'm unsure where the 1.73 here comes from but it is necessary for now. [INFO] [stdout] 446 + self.apply_rotated_horizontal_velocity_change(-self.velocity.x.signum() * 1.73); [INFO] [stdout] 447 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/fighter.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | / if self.state_frame == 0 { [INFO] [stdout] 482 | | if self.input.x_axis.is_active() { [INFO] [stdout] 483 | | self.apply_rotated_horizontal_velocity_change(self.facing_direction() * (0.1 + 0.2 * self.input.x_axis.value)); [INFO] [stdout] 484 | | } [INFO] [stdout] 485 | | } [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] 481 ~ if self.state_frame == 0 [INFO] [stdout] 482 ~ && self.input.x_axis.is_active() { [INFO] [stdout] 483 | self.apply_rotated_horizontal_velocity_change(self.facing_direction() * (0.1 + 0.2 * self.input.x_axis.value)); [INFO] [stdout] 484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fighter.rs:238:32 [INFO] [stdout] | [INFO] [stdout] 238 | self.input.copy_inputs(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fighter.rs:674:12 [INFO] [stdout] | [INFO] [stdout] 674 | if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 674 - if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] 674 + if !(!self.run_turn_has_fully_turned && self.run_turn_melee_frame >= 9) { [INFO] [stdout] | [INFO] [stdout] 674 - if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] 674 + if self.run_turn_has_fully_turned || self.run_turn_melee_frame < 9 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fighter.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | return axis.direction() * acceleration_abs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 376 - return axis.direction() * acceleration_abs; [INFO] [stdout] 376 + axis.direction() * acceleration_abs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighter.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | / match self.previous_state { [INFO] [stdout] 445 | | FighterState::Dash => { [INFO] [stdout] 446 | | // I'm unsure where the 1.73 here comes from but it is necessary for now. [INFO] [stdout] 447 | | self.apply_rotated_horizontal_velocity_change(-self.velocity.x.signum() * 1.73); [INFO] [stdout] 448 | | }, [INFO] [stdout] 449 | | _ => () [INFO] [stdout] 450 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 444 ~ if self.previous_state == FighterState::Dash { [INFO] [stdout] 445 + // I'm unsure where the 1.73 here comes from but it is necessary for now. [INFO] [stdout] 446 + self.apply_rotated_horizontal_velocity_change(-self.velocity.x.signum() * 1.73); [INFO] [stdout] 447 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighter.rs:708:13 [INFO] [stdout] | [INFO] [stdout] 708 | / ... match self.previous_state { [INFO] [stdout] 709 | | ... FighterState::JumpSquat => { [INFO] [stdout] 710 | | ... // Handle changing horizontal velocity when jumping off of the ground based on stick x axis. [INFO] [stdout] 711 | | ... self.velocity.x = (self.velocity.x * self.jump_velocity_dampening) + (self.input.x_axis.value * self.jump_start_hor... [INFO] [stdout] ... | [INFO] [stdout] 724 | | ... _ => () [INFO] [stdout] 725 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 708 ~ if self.previous_state == FighterState::JumpSquat { [INFO] [stdout] 709 + // Handle changing horizontal velocity when jumping off of the ground based on stick x axis. [INFO] [stdout] 710 + self.velocity.x = (self.velocity.x * self.jump_velocity_dampening) + (self.input.x_axis.value * self.jump_start_horizontal_velocity); [INFO] [stdout] 711 + if self.velocity.x.abs() > self.jump_max_horizontal_velocity { [INFO] [stdout] 712 + self.velocity.x = self.velocity.x.signum() * self.jump_max_horizontal_velocity; [INFO] [stdout] 713 + } [INFO] [stdout] 714 + [INFO] [stdout] 715 + // Handle short hopping and full hopping. [INFO] [stdout] 716 + if self.jump_is_active() { [INFO] [stdout] 717 + self.velocity.y = self.full_hop_velocity; [INFO] [stdout] 718 + } [INFO] [stdout] 719 + else { [INFO] [stdout] 720 + self.velocity.y = self.short_hop_velocity; [INFO] [stdout] 721 + } [INFO] [stdout] 722 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/fighter.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | / if self.state_frame == 0 { [INFO] [stdout] 482 | | if self.input.x_axis.is_active() { [INFO] [stdout] 483 | | self.apply_rotated_horizontal_velocity_change(self.facing_direction() * (0.1 + 0.2 * self.input.x_axis.value)); [INFO] [stdout] 484 | | } [INFO] [stdout] 485 | | } [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] 481 ~ if self.state_frame == 0 [INFO] [stdout] 482 ~ && self.input.x_axis.is_active() { [INFO] [stdout] 483 | self.apply_rotated_horizontal_velocity_change(self.facing_direction() * (0.1 + 0.2 * self.input.x_axis.value)); [INFO] [stdout] 484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ECB` contains a capitalized acronym [INFO] [stdout] --> src/ecb.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct ECB { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ecb` [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: this boolean expression can be simplified [INFO] [stdout] --> src/fighter.rs:674:12 [INFO] [stdout] | [INFO] [stdout] 674 | if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 674 - if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] 674 + if !(!self.run_turn_has_fully_turned && self.run_turn_melee_frame >= 9) { [INFO] [stdout] | [INFO] [stdout] 674 - if self.run_turn_has_fully_turned || (self.run_turn_melee_frame < 9 && !self.run_turn_has_fully_turned) { [INFO] [stdout] 674 + if self.run_turn_has_fully_turned || self.run_turn_melee_frame < 9 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/fighting_game_renderer.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/fighting_game_renderer.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ^^^^^^ replace this binding [INFO] [stdout] 38 | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ with this pattern [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] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighter.rs:708:13 [INFO] [stdout] | [INFO] [stdout] 708 | / ... match self.previous_state { [INFO] [stdout] 709 | | ... FighterState::JumpSquat => { [INFO] [stdout] 710 | | ... // Handle changing horizontal velocity when jumping off of the ground based on stick x axis. [INFO] [stdout] 711 | | ... self.velocity.x = (self.velocity.x * self.jump_velocity_dampening) + (self.input.x_axis.value * self.jump_start_hor... [INFO] [stdout] ... | [INFO] [stdout] 724 | | ... _ => () [INFO] [stdout] 725 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 708 ~ if self.previous_state == FighterState::JumpSquat { [INFO] [stdout] 709 + // Handle changing horizontal velocity when jumping off of the ground based on stick x axis. [INFO] [stdout] 710 + self.velocity.x = (self.velocity.x * self.jump_velocity_dampening) + (self.input.x_axis.value * self.jump_start_horizontal_velocity); [INFO] [stdout] 711 + if self.velocity.x.abs() > self.jump_max_horizontal_velocity { [INFO] [stdout] 712 + self.velocity.x = self.velocity.x.signum() * self.jump_max_horizontal_velocity; [INFO] [stdout] 713 + } [INFO] [stdout] 714 + [INFO] [stdout] 715 + // Handle short hopping and full hopping. [INFO] [stdout] 716 + if self.jump_is_active() { [INFO] [stdout] 717 + self.velocity.y = self.full_hop_velocity; [INFO] [stdout] 718 + } [INFO] [stdout] 719 + else { [INFO] [stdout] 720 + self.velocity.y = self.short_hop_velocity; [INFO] [stdout] 721 + } [INFO] [stdout] 722 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/fighting_game_renderer.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | ButtonState::Press => match args.button { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 37 | | Button::Mouse(button) => match button { [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] 41 | | _ => () [INFO] [stdout] 42 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 ~ ButtonState::Press => if let Button::Mouse(button) = args.button { match button { [INFO] [stdout] 37 + MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 38 + _ => () [INFO] [stdout] 39 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighting_game_renderer.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] | |_____________________^ help: try: `if button == MouseButton::Middle { self.middle_mouse_is_down = true }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/fighting_game_renderer.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/fighting_game_renderer.rs:44:35 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ^^^^^^ replace this binding [INFO] [stdout] 45 | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [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/fighting_game_renderer.rs:43:41 [INFO] [stdout] | [INFO] [stdout] 43 | ButtonState::Release => match args.button { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 44 | | Button::Mouse(button) => match button { [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] 48 | | _ => () [INFO] [stdout] 49 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ ButtonState::Release => if let Button::Mouse(button) = args.button { match button { [INFO] [stdout] 44 + MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 45 + _ => () [INFO] [stdout] 46 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighting_game_renderer.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_____________________^ help: try: `if button == MouseButton::Middle { self.middle_mouse_is_down = false }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/fighting_game_renderer.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / pub fn render( [INFO] [stdout] 69 | | &mut self, [INFO] [stdout] 70 | | context: Context, [INFO] [stdout] 71 | | graphics: &mut G2d, [INFO] [stdout] ... | [INFO] [stdout] 76 | | interpolation: f64 [INFO] [stdout] 77 | | ) { [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fighting_game_renderer.rs:82:57 [INFO] [stdout] | [INFO] [stdout] 82 | self.draw_debug_text(context, graphics, device, &game, window_width, window_height); [INFO] [stdout] | ^^^^^ help: change this to: `game` [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: name `ECB` contains a capitalized acronym [INFO] [stdout] --> src/ecb.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct ECB { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ecb` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fighting_game_renderer.rs:232:81 [INFO] [stdout] | [INFO] [stdout] 232 | self.draw_poly_line(context, graphics, window_width, window_height, &poly_line); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `poly_line` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/fighting_game_renderer.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/fighting_game_renderer.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ^^^^^^ replace this binding [INFO] [stdout] 38 | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ with this pattern [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] [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/fighting_game_renderer.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | ButtonState::Press => match args.button { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 37 | | Button::Mouse(button) => match button { [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] 41 | | _ => () [INFO] [stdout] 42 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 ~ ButtonState::Press => if let Button::Mouse(button) = args.button { match button { [INFO] [stdout] 37 + MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 38 + _ => () [INFO] [stdout] 39 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighting_game_renderer.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 38 | | MouseButton::Middle => self.middle_mouse_is_down = true, [INFO] [stdout] 39 | | _ => () [INFO] [stdout] 40 | | }, [INFO] [stdout] | |_____________________^ help: try: `if button == MouseButton::Middle { self.middle_mouse_is_down = true }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/fighting_game_renderer.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/fighting_game_renderer.rs:44:35 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ^^^^^^ replace this binding [INFO] [stdout] 45 | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [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/fighting_game_renderer.rs:43:41 [INFO] [stdout] | [INFO] [stdout] 43 | ButtonState::Release => match args.button { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 44 | | Button::Mouse(button) => match button { [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] 48 | | _ => () [INFO] [stdout] 49 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ ButtonState::Release => if let Button::Mouse(button) = args.button { match button { [INFO] [stdout] 44 + MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 45 + _ => () [INFO] [stdout] 46 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/fighting_game_renderer.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | Button::Mouse(button) => match button { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 45 | | MouseButton::Middle => self.middle_mouse_is_down = false, [INFO] [stdout] 46 | | _ => () [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_____________________^ help: try: `if button == MouseButton::Middle { self.middle_mouse_is_down = false }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/fighting_game_renderer.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / pub fn render( [INFO] [stdout] 69 | | &mut self, [INFO] [stdout] 70 | | context: Context, [INFO] [stdout] 71 | | graphics: &mut G2d, [INFO] [stdout] ... | [INFO] [stdout] 76 | | interpolation: f64 [INFO] [stdout] 77 | | ) { [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fighting_game_renderer.rs:82:57 [INFO] [stdout] | [INFO] [stdout] 82 | self.draw_debug_text(context, graphics, device, &game, window_width, window_height); [INFO] [stdout] | ^^^^^ help: change this to: `game` [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/fighting_game_renderer.rs:232:81 [INFO] [stdout] | [INFO] [stdout] 232 | self.draw_poly_line(context, graphics, window_width, window_height, &poly_line); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `poly_line` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.48s [INFO] running `Command { std: "docker" "inspect" "a2f554406c7c22b97d9c8fd86d649558fbd64e5d6d06aaf990bfd7807e549601", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2f554406c7c22b97d9c8fd86d649558fbd64e5d6d06aaf990bfd7807e549601", kill_on_drop: false }` [INFO] [stdout] a2f554406c7c22b97d9c8fd86d649558fbd64e5d6d06aaf990bfd7807e549601