[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/291d3a41df850bf2712f52110ede29bf698365b1 against try#613d1972a772987ed4ee06faccbab0e2fc839871+rustflags=-Copt-level=3 for pr-107051 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadgerBadgerBadgerBadger%2Fggez-space-invaders" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders on toolchain 613d1972a772987ed4ee06faccbab0e2fc839871 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "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-2-tc2/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: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e1396009d7b03812aa9073817de064c451684e357772f186fd26faba3908c1ab [INFO] running `Command { std: "docker" "start" "-a" "e1396009d7b03812aa9073817de064c451684e357772f186fd26faba3908c1ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e1396009d7b03812aa9073817de064c451684e357772f186fd26faba3908c1ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e1396009d7b03812aa9073817de064c451684e357772f186fd26faba3908c1ab", kill_on_drop: false }` [INFO] [stdout] e1396009d7b03812aa9073817de064c451684e357772f186fd26faba3908c1ab [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f54d7afcff4ebb5ac9bd48b9dd6c62b3f38ced852e86a3f01484c94c2624d36d [INFO] running `Command { std: "docker" "start" "-a" "f54d7afcff4ebb5ac9bd48b9dd6c62b3f38ced852e86a3f01484c94c2624d36d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.74 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling libm v0.2.1 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling pkg-config v0.3.18 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling serde v1.0.115 [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 scopeguard v1.1.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling libloading v0.6.2 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling linked-hash-map v0.5.3 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling gl_generator v0.13.1 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling quote v0.6.13 [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 stb_truetype v0.3.1 [INFO] [stderr] Compiling wayland-scanner v0.21.13 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling wayland-sys v0.21.13 [INFO] [stderr] Compiling smallvec v0.6.13 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling ordered-float v1.1.0 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Compiling syn v1.0.38 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling gimli v0.22.0 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling miniz_oxide v0.4.0 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling nodrop v0.1.14 [INFO] [stderr] Compiling serde_derive v1.0.115 [INFO] [stderr] Compiling rustc-demangle v0.1.16 [INFO] [stderr] Compiling serde_json v1.0.57 [INFO] [stderr] Compiling object v0.20.0 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling wayland-commons v0.21.13 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Compiling itoa v0.4.6 [INFO] [stderr] Compiling pulldown-cmark v0.2.0 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.8 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling bzip2-sys v0.1.9+1.0.8 [INFO] [stderr] Compiling addr2line v0.13.0 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling minimp3-sys v0.3.2 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling backtrace v0.3.50 [INFO] [stderr] Compiling glutin_glx_sys v0.1.6 [INFO] [stderr] Compiling glutin_egl_sys v0.1.4 [INFO] [stderr] Compiling alsa-sys v0.1.2 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling lock_api v0.3.4 [INFO] [stderr] Compiling draw_state v0.8.0 [INFO] [stderr] Compiling nix v0.15.0 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling gfx_core v0.9.2 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling wayland-client v0.21.13 [INFO] [stderr] Compiling wayland-protocols v0.21.13 [INFO] [stderr] Compiling sid v0.5.2 [INFO] [stderr] Compiling gfx_gl v0.6.1 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling glob v0.2.11 [INFO] [stderr] Compiling lzw v0.10.0 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling bytecount v0.4.0 [INFO] [stderr] Compiling xi-unicode v0.2.1 [INFO] [stderr] Compiling matrixmultiply v0.2.3 [INFO] [stderr] Compiling glyph_brush_layout v0.1.9 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling twox-hash v1.5.0 [INFO] [stderr] Compiling alga v0.9.3 [INFO] [stderr] Compiling generic-array v0.12.3 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling slice-deque v0.3.0 [INFO] [stderr] Compiling ogg v0.7.0 [INFO] [stderr] Compiling uuid v0.8.1 [INFO] [stderr] Compiling color_quant v1.0.1 [INFO] [stderr] Compiling mint v0.5.5 [INFO] [stderr] Compiling lewton v0.9.4 [INFO] [stderr] Compiling gif v0.10.3 [INFO] [stderr] Compiling minimp3 v0.3.5 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling cpal v0.8.2 [INFO] [stderr] Compiling bzip2 v0.3.3 [INFO] [stderr] Compiling glyph_brush v0.6.3 [INFO] [stderr] Compiling nalgebra v0.18.1 [INFO] [stderr] Compiling dirs-sys v0.3.5 [INFO] [stderr] Compiling jpeg-decoder v0.1.20 [INFO] [stderr] Compiling claxon v0.4.3 [INFO] [stderr] Compiling podio v0.1.7 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling hound v3.4.0 [INFO] [stderr] Compiling zip v0.5.6 [INFO] [stderr] Compiling glyph_brush v0.5.4 [INFO] [stderr] Compiling directories v2.0.2 [INFO] [stderr] Compiling gfx v0.18.2 [INFO] [stderr] Compiling toml v0.5.6 [INFO] [stderr] Compiling gilrs-core v0.2.6 [INFO] [stderr] Compiling gilrs v0.7.4 [INFO] [stderr] Compiling smithay-client-toolkit v0.4.6 [INFO] [stderr] Compiling gfx_device_gl v0.16.2 [INFO] [stderr] Compiling winit v0.19.5 [INFO] [stderr] Compiling euclid_macros v0.1.0 [INFO] [stderr] Compiling smart-default v0.5.2 [INFO] [stderr] Compiling glutin v0.20.1 [INFO] [stderr] Compiling gfx_window_glutin v0.30.0 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling euclid v0.19.9 [INFO] [stderr] Compiling image v0.22.5 [INFO] [stderr] Compiling rodio v0.9.0 [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 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: fields `key_presses` and `image_cache` are never read [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 59 | struct Game { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | key_presses: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 64 | debugging: bool, [INFO] [stdout] 65 | image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `ENEMY_LEFT_OFFSET` is never used [INFO] [stdout] --> src/enemies.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/enemies.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct Enemy { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 147 | id: u16, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EnemyShot` is never constructed [INFO] [stdout] --> src/projectile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ShotType { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 15 | PlayerShot, [INFO] [stdout] 16 | EnemyShot, [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: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5m 54s [INFO] running `Command { std: "docker" "inspect" "f54d7afcff4ebb5ac9bd48b9dd6c62b3f38ced852e86a3f01484c94c2624d36d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f54d7afcff4ebb5ac9bd48b9dd6c62b3f38ced852e86a3f01484c94c2624d36d", kill_on_drop: false }` [INFO] [stdout] f54d7afcff4ebb5ac9bd48b9dd6c62b3f38ced852e86a3f01484c94c2624d36d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2b6eb7302f0c78cae9b4e950c03c70e8ee8af429d8fdac2a10721e74e0630566 [INFO] running `Command { std: "docker" "start" "-a" "2b6eb7302f0c78cae9b4e950c03c70e8ee8af429d8fdac2a10721e74e0630566", kill_on_drop: false }` [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: fields `key_presses` and `image_cache` are never read [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 59 | struct Game { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | key_presses: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 64 | debugging: bool, [INFO] [stdout] 65 | image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `ENEMY_LEFT_OFFSET` is never used [INFO] [stdout] --> src/enemies.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/enemies.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct Enemy { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 147 | id: u16, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EnemyShot` is never constructed [INFO] [stdout] --> src/projectile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ShotType { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 15 | PlayerShot, [INFO] [stdout] 16 | EnemyShot, [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: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.25s [INFO] running `Command { std: "docker" "inspect" "2b6eb7302f0c78cae9b4e950c03c70e8ee8af429d8fdac2a10721e74e0630566", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b6eb7302f0c78cae9b4e950c03c70e8ee8af429d8fdac2a10721e74e0630566", kill_on_drop: false }` [INFO] [stdout] 2b6eb7302f0c78cae9b4e950c03c70e8ee8af429d8fdac2a10721e74e0630566 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 08092a987e43106e215a1fc32aec3ef107c2c565ba7fbfeed35a9a236e4d6e19 [INFO] running `Command { std: "docker" "start" "-a" "08092a987e43106e215a1fc32aec3ef107c2c565ba7fbfeed35a9a236e4d6e19", 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: fields `key_presses` and `image_cache` are never read [INFO] [stderr] --> src/main.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 59 | struct Game { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 63 | key_presses: HashMap, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 64 | debugging: bool, [INFO] [stderr] 65 | image_cache: ImageCache, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: static `ENEMY_LEFT_OFFSET` is never used [INFO] [stderr] --> src/enemies.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | static ENEMY_LEFT_OFFSET: f32 = 100.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `id` is never read [INFO] [stderr] --> src/enemies.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 146 | pub struct Enemy { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 147 | id: u16, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant `EnemyShot` is never constructed [INFO] [stderr] --> src/projectile.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub enum ShotType { [INFO] [stderr] | -------- variant in this enum [INFO] [stderr] 15 | PlayerShot, [INFO] [stderr] 16 | EnemyShot, [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: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [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 28 warnings (run `cargo fix --bin "ggez-space-invaders" --tests` to apply 19 suggestions) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.20s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ggez_space_invaders-a4e00f7ae49aa851) [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" "08092a987e43106e215a1fc32aec3ef107c2c565ba7fbfeed35a9a236e4d6e19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08092a987e43106e215a1fc32aec3ef107c2c565ba7fbfeed35a9a236e4d6e19", kill_on_drop: false }` [INFO] [stdout] 08092a987e43106e215a1fc32aec3ef107c2c565ba7fbfeed35a9a236e4d6e19