[INFO] cloning repository https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadgerBadgerBadgerBadger%2Fggez-space-invaders", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadgerBadgerBadgerBadger%2Fggez-space-invaders'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 291d3a41df850bf2712f52110ede29bf698365b1 [INFO] testing BadgerBadgerBadgerBadger/ggez-space-invaders against 1.59.0 for beta-1.60-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadgerBadgerBadgerBadger%2Fggez-space-invaders" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders on toolchain 1.59.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.59.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders [INFO] finished tweaking git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders [INFO] tweaked toml for git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.59.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] be79d9a6b8b143b2525393ae8a6cbcd3fb863556f3e6bfce4bd12bd5d7c65e5d [INFO] running `Command { std: "docker" "start" "-a" "be79d9a6b8b143b2525393ae8a6cbcd3fb863556f3e6bfce4bd12bd5d7c65e5d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "be79d9a6b8b143b2525393ae8a6cbcd3fb863556f3e6bfce4bd12bd5d7c65e5d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be79d9a6b8b143b2525393ae8a6cbcd3fb863556f3e6bfce4bd12bd5d7c65e5d", kill_on_drop: false }` [INFO] [stdout] be79d9a6b8b143b2525393ae8a6cbcd3fb863556f3e6bfce4bd12bd5d7c65e5d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9f2b234513a8a29bad7a9d4851bf286697c764a1a526b3e3ee67883940255c68 [INFO] running `Command { std: "docker" "start" "-a" "9f2b234513a8a29bad7a9d4851bf286697c764a1a526b3e3ee67883940255c68", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.74 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling cc v1.0.58 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling libloading v0.6.2 [INFO] [stderr] Compiling linked-hash-map v0.5.3 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling syn v1.0.38 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Compiling nodrop v0.1.14 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling itoa v0.4.6 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.8 [INFO] [stderr] Compiling pulldown-cmark v0.2.0 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling nix v0.15.0 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling bytecount v0.4.0 [INFO] [stderr] Compiling glob v0.2.11 [INFO] [stderr] Compiling xi-unicode v0.2.1 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling color_quant v1.0.1 [INFO] [stderr] Compiling mint v0.5.5 [INFO] [stderr] Compiling uuid v0.8.1 [INFO] [stderr] Compiling podio v0.1.7 [INFO] [stderr] Compiling claxon v0.4.3 [INFO] [stderr] Compiling hound v3.4.0 [INFO] [stderr] Compiling miniz_oxide v0.4.0 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling lock_api v0.3.4 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling alsa-sys v0.1.2 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling libm v0.2.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling smallvec v0.6.13 [INFO] [stderr] Compiling draw_state v0.8.0 [INFO] [stderr] Compiling ogg v0.7.0 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling jpeg-decoder v0.1.20 [INFO] [stderr] Compiling toml v0.5.6 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling gif v0.10.3 [INFO] [stderr] Compiling matrixmultiply v0.2.3 [INFO] [stderr] Compiling serde_json v1.0.57 [INFO] [stderr] Compiling gfx_core v0.9.2 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling wayland-scanner v0.21.13 [INFO] [stderr] Compiling lewton v0.9.4 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling memoffset v0.5.5 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling gl_generator v0.13.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-sys v0.21.13 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling minimp3-sys v0.3.2 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling bzip2-sys v0.1.9+1.0.8 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling gfx v0.18.2 [INFO] [stderr] Compiling generic-array v0.12.3 [INFO] [stderr] Compiling gfx_gl v0.6.1 [INFO] [stderr] Compiling glutin_glx_sys v0.1.6 [INFO] [stderr] Compiling glutin_egl_sys v0.1.4 [INFO] [stderr] Compiling wayland-client v0.21.13 [INFO] [stderr] Compiling wayland-protocols v0.21.13 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling backtrace v0.3.50 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling slice-deque v0.3.0 [INFO] [stderr] Compiling dirs-sys v0.3.5 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling ordered-float v1.1.0 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling directories v2.0.2 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling cpal v0.8.2 [INFO] [stderr] Compiling sid v0.5.2 [INFO] [stderr] Compiling minimp3 v0.3.5 [INFO] [stderr] Compiling bzip2 v0.3.3 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling zip v0.5.6 [INFO] [stderr] Compiling alga v0.9.3 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling nalgebra v0.18.1 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling glyph_brush_layout v0.1.9 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling twox-hash v1.5.0 [INFO] [stderr] Compiling euclid_macros v0.1.0 [INFO] [stderr] Compiling smart-default v0.5.2 [INFO] [stderr] Compiling glyph_brush v0.6.3 [INFO] [stderr] Compiling glyph_brush v0.5.4 [INFO] [stderr] Compiling gilrs-core v0.2.6 [INFO] [stderr] Compiling wayland-commons v0.21.13 [INFO] [stderr] Compiling gilrs v0.7.4 [INFO] [stderr] Compiling euclid v0.19.9 [INFO] [stderr] Compiling serde_derive v1.0.115 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling gfx_device_gl v0.16.2 [INFO] [stderr] Compiling image v0.22.5 [INFO] [stderr] Compiling lyon_geom v0.12.7 [INFO] [stderr] Compiling lyon_path v0.13.2 [INFO] [stderr] Compiling lyon_tessellation v0.13.5 [INFO] [stderr] Compiling lyon_algorithms v0.13.4 [INFO] [stderr] Compiling lyon v0.13.5 [INFO] [stderr] Compiling cargo_metadata v0.6.4 [INFO] [stderr] Compiling skeptic v0.13.4 [INFO] [stderr] Compiling ggez v0.5.1 [INFO] [stderr] Compiling rodio v0.9.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.4.6 [INFO] [stderr] Compiling winit v0.19.5 [INFO] [stderr] Compiling glutin v0.20.1 [INFO] [stderr] Compiling gfx_window_glutin v0.30.0 [INFO] [stderr] Compiling ggez-space-invaders v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::player::Player` [INFO] [stdout] --> src/enemies.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::player::Player; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/enemies.rs:105:46 [INFO] [stdout] | [INFO] [stdout] 105 | enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stdout] 105 + enemy.transform.x += ENEMY_SPEED_X * row_dir; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::graphics::mint::Point2` [INFO] [stdout] --> src/player.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use ggez::graphics::mint::Point2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mint` [INFO] [stdout] --> src/player.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use ggez::graphics::{mint, DrawParam, Image, Rect}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/player.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/player.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Enemy` [INFO] [stdout] --> src/projectile.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::misc::overlaps` [INFO] [stdout] --> src/projectile.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::misc::overlaps; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Point2` [INFO] [stdout] --> src/projectile.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use ggez::mint::{Point2, Vector2}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/projectile.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/main.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::graphics::spritebatch::SpriteBatch` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use ggez::graphics::spritebatch::SpriteBatch; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `DrawParam`, `Image`, `Mesh` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | Color, DrawParam, Image, Mesh, Rect, Scale, Text, TextFragment, BLACK, WHITE, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::mint::Vector2` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use ggez::mint::Vector2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Enemy` [INFO] [stdout] --> src/main.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Projectile` [INFO] [stdout] --> src/main.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::projectile::{Projectile, ProjectileSystem}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `GAME_STATE` should have an upper camel case name [INFO] [stdout] --> src/main.rs:35:6 [INFO] [stdout] | [INFO] [stdout] 35 | enum GAME_STATE { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `GameState` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/image_cache.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | return match self.images.get(path) { [INFO] [stdout] | __________^______- [INFO] [stdout] | | _________| [INFO] [stdout] | || [INFO] [stdout] 18 | || Some(image) => return Ok(image.clone()), [INFO] [stdout] 19 | || None => { [INFO] [stdout] 20 | || let image = Image::new(ctx, path)?; [INFO] [stdout] ... || [INFO] [stdout] 25 | || } [INFO] [stdout] 26 | || }; [INFO] [stdout] | || ^ [INFO] [stdout] | ||_________| [INFO] [stdout] | |__________unreachable expression [INFO] [stdout] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/player.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let mut dir_sign = match direction { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let mut game = Game { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `ENEMY_LEFT_OFFSET` [INFO] [stdout] --> src/enemies.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/enemies.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | id: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `EnemyShot` [INFO] [stdout] --> src/projectile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | EnemyShot, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `key_presses` [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | key_presses: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `image_cache` [INFO] [stdout] --> src/main.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | image_cache.image(ctx, "/images/enemy_explode.png"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | self.update_playing(ctx, dt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 29 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 09s [INFO] running `Command { std: "docker" "inspect" "9f2b234513a8a29bad7a9d4851bf286697c764a1a526b3e3ee67883940255c68", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9f2b234513a8a29bad7a9d4851bf286697c764a1a526b3e3ee67883940255c68", kill_on_drop: false }` [INFO] [stdout] 9f2b234513a8a29bad7a9d4851bf286697c764a1a526b3e3ee67883940255c68 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] da52547698be32fd61c00749f9bbc5dac5519f2c5113ec1299ca6b26e4b4c6d9 [INFO] running `Command { std: "docker" "start" "-a" "da52547698be32fd61c00749f9bbc5dac5519f2c5113ec1299ca6b26e4b4c6d9", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling ggez-space-invaders v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::player::Player` [INFO] [stdout] --> src/enemies.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::player::Player; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/enemies.rs:105:46 [INFO] [stdout] | [INFO] [stdout] 105 | enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stdout] 105 + enemy.transform.x += ENEMY_SPEED_X * row_dir; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::graphics::mint::Point2` [INFO] [stdout] --> src/player.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use ggez::graphics::mint::Point2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mint` [INFO] [stdout] --> src/player.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use ggez::graphics::{mint, DrawParam, Image, Rect}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/player.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/player.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Enemy` [INFO] [stdout] --> src/projectile.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::misc::overlaps` [INFO] [stdout] --> src/projectile.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::misc::overlaps; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Point2` [INFO] [stdout] --> src/projectile.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use ggez::mint::{Point2, Vector2}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/projectile.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/main.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::graphics::spritebatch::SpriteBatch` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use ggez::graphics::spritebatch::SpriteBatch; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `DrawParam`, `Image`, `Mesh` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | Color, DrawParam, Image, Mesh, Rect, Scale, Text, TextFragment, BLACK, WHITE, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ggez::mint::Vector2` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use ggez::mint::Vector2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Enemy` [INFO] [stdout] --> src/main.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Projectile` [INFO] [stdout] --> src/main.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::projectile::{Projectile, ProjectileSystem}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `GAME_STATE` should have an upper camel case name [INFO] [stdout] --> src/main.rs:35:6 [INFO] [stdout] | [INFO] [stdout] 35 | enum GAME_STATE { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `GameState` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/image_cache.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | return match self.images.get(path) { [INFO] [stdout] | __________^______- [INFO] [stdout] | | _________| [INFO] [stdout] | || [INFO] [stdout] 18 | || Some(image) => return Ok(image.clone()), [INFO] [stdout] 19 | || None => { [INFO] [stdout] 20 | || let image = Image::new(ctx, path)?; [INFO] [stdout] ... || [INFO] [stdout] 25 | || } [INFO] [stdout] 26 | || }; [INFO] [stdout] | || ^ [INFO] [stdout] | ||_________| [INFO] [stdout] | |__________unreachable expression [INFO] [stdout] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/player.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let mut dir_sign = match direction { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let mut game = Game { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `ENEMY_LEFT_OFFSET` [INFO] [stdout] --> src/enemies.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/enemies.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | id: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `EnemyShot` [INFO] [stdout] --> src/projectile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | EnemyShot, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `key_presses` [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | key_presses: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `image_cache` [INFO] [stdout] --> src/main.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | image_cache.image(ctx, "/images/enemy_explode.png"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | self.update_playing(ctx, dt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 29 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.71s [INFO] running `Command { std: "docker" "inspect" "da52547698be32fd61c00749f9bbc5dac5519f2c5113ec1299ca6b26e4b4c6d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da52547698be32fd61c00749f9bbc5dac5519f2c5113ec1299ca6b26e4b4c6d9", kill_on_drop: false }` [INFO] [stdout] da52547698be32fd61c00749f9bbc5dac5519f2c5113ec1299ca6b26e4b4c6d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0602f9a8fc6756fe5602864094db4439eda60e0108c56107e3b231f44dfd18cb [INFO] running `Command { std: "docker" "start" "-a" "0602f9a8fc6756fe5602864094db4439eda60e0108c56107e3b231f44dfd18cb", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::player::Player` [INFO] [stderr] --> src/enemies.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::player::Player; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/enemies.rs:105:46 [INFO] [stderr] | [INFO] [stderr] 105 | enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 105 - enemy.transform.x += (ENEMY_SPEED_X * row_dir); [INFO] [stderr] 105 + enemy.transform.x += ENEMY_SPEED_X * row_dir; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics::mint::Point2` [INFO] [stderr] --> src/player.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use ggez::graphics::mint::Point2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mint` [INFO] [stderr] --> src/player.rs:5:22 [INFO] [stderr] | [INFO] [stderr] 5 | use ggez::graphics::{mint, DrawParam, Image, Rect}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/player.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Instant` [INFO] [stderr] --> src/player.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Enemy` [INFO] [stderr] --> src/projectile.rs:1:22 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::misc::overlaps` [INFO] [stderr] --> src/projectile.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::misc::overlaps; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Point2` [INFO] [stderr] --> src/projectile.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | use ggez::mint::{Point2, Vector2}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/projectile.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/main.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Rng`, `thread_rng` [INFO] [stderr] --> src/main.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | use rand::{thread_rng, Rng}; [INFO] [stderr] | ^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics::spritebatch::SpriteBatch` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use ggez::graphics::spritebatch::SpriteBatch; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color`, `DrawParam`, `Image`, `Mesh` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | Color, DrawParam, Image, Mesh, Rect, Scale, Text, TextFragment, BLACK, WHITE, [INFO] [stderr] | ^^^^^ ^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::mint::Vector2` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use ggez::mint::Vector2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Enemy` [INFO] [stderr] --> src/main.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | use crate::enemies::{Enemy, EnemySystem}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Projectile` [INFO] [stderr] --> src/main.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | use crate::projectile::{Projectile, ProjectileSystem}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `GAME_STATE` should have an upper camel case name [INFO] [stderr] --> src/main.rs:35:6 [INFO] [stderr] | [INFO] [stderr] 35 | enum GAME_STATE { [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `GameState` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/image_cache.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | return match self.images.get(path) { [INFO] [stderr] | __________^______- [INFO] [stderr] | | _________| [INFO] [stderr] | || [INFO] [stderr] 18 | || Some(image) => return Ok(image.clone()), [INFO] [stderr] 19 | || None => { [INFO] [stderr] 20 | || let image = Image::new(ctx, path)?; [INFO] [stderr] ... || [INFO] [stderr] 25 | || } [INFO] [stderr] 26 | || }; [INFO] [stderr] | || ^ [INFO] [stderr] | ||_________| [INFO] [stderr] | |__________unreachable expression [INFO] [stderr] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/player.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | let mut dir_sign = match direction { [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | let mut game = Game { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: static is never used: `ENEMY_LEFT_OFFSET` [INFO] [stderr] --> src/enemies.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `id` [INFO] [stderr] --> src/enemies.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | id: u16, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `EnemyShot` [INFO] [stderr] --> src/projectile.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | EnemyShot, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `key_presses` [INFO] [stderr] --> src/main.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | key_presses: HashMap, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `image_cache` [INFO] [stderr] --> src/main.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | image_cache: ImageCache, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | image_cache.image(ctx, "/images/enemy_explode.png"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | self.update_playing(ctx, dt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `ggez-space-invaders` (bin "ggez-space-invaders" test) generated 29 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ggez_space_invaders-39815df373915703) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0602f9a8fc6756fe5602864094db4439eda60e0108c56107e3b231f44dfd18cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0602f9a8fc6756fe5602864094db4439eda60e0108c56107e3b231f44dfd18cb", kill_on_drop: false }` [INFO] [stdout] 0602f9a8fc6756fe5602864094db4439eda60e0108c56107e3b231f44dfd18cb