[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.49.0 for beta-1.50-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadgerBadgerBadgerBadger%2Fggez-space-invaders" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/BadgerBadgerBadgerBadger/ggez-space-invaders on toolchain 1.49.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "read-manifest" "--manifest-path" "Cargo.toml", 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-5/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.49.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "rustops/crates-build-env@sha256:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] ab892bc0466c6b5ccc2c5fa68d4cbbc621523d46022545409621c03a31eeabc6 [INFO] running `Command { std: "docker" "start" "-a" "ab892bc0466c6b5ccc2c5fa68d4cbbc621523d46022545409621c03a31eeabc6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ab892bc0466c6b5ccc2c5fa68d4cbbc621523d46022545409621c03a31eeabc6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab892bc0466c6b5ccc2c5fa68d4cbbc621523d46022545409621c03a31eeabc6", kill_on_drop: false }` [INFO] [stdout] ab892bc0466c6b5ccc2c5fa68d4cbbc621523d46022545409621c03a31eeabc6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "rustops/crates-build-env@sha256:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] e0d4afcba6134e7bbe7093fae3151f055089e0389651547245b8ccd8c839e98f [INFO] running `Command { std: "docker" "start" "-a" "e0d4afcba6134e7bbe7093fae3151f055089e0389651547245b8ccd8c839e98f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.74 [INFO] [stderr] Compiling libm v0.2.1 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling pkg-config v0.3.18 [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 syn v0.15.44 [INFO] [stderr] Compiling libloading v0.6.2 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling linked-hash-map v0.5.3 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Compiling syn v1.0.38 [INFO] [stderr] Compiling gimli v0.22.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling serde_derive v1.0.115 [INFO] [stderr] Compiling downcast-rs v1.2.0 [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 crc32fast v1.2.0 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling itoa v0.4.6 [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 percent-encoding v2.1.0 [INFO] [stderr] Compiling xi-unicode v0.2.1 [INFO] [stderr] Compiling rawpointer v0.2.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 fnv v1.0.7 [INFO] [stderr] Compiling claxon v0.4.3 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling memoffset v0.5.5 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling miniz_oxide v0.4.0 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling gif v0.10.3 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling alsa-sys v0.1.2 [INFO] [stderr] Compiling matrixmultiply v0.2.3 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling draw_state v0.8.0 [INFO] [stderr] Compiling pulldown-cmark v0.2.0 [INFO] [stderr] Compiling smallvec v0.6.13 [INFO] [stderr] Compiling stb_truetype v0.3.1 [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 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 dlib v0.4.2 [INFO] [stderr] Compiling gl_generator v0.13.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.21.13 [INFO] [stderr] Compiling gfx_core v0.9.2 [INFO] [stderr] Compiling addr2line v0.13.0 [INFO] [stderr] Compiling lewton v0.9.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling wayland-sys v0.21.13 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling slice-deque v0.3.0 [INFO] [stderr] Compiling dirs-sys v0.3.5 [INFO] [stderr] Compiling backtrace v0.3.50 [INFO] [stderr] Compiling generic-array v0.12.3 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [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 rand_core v0.5.1 [INFO] [stderr] Compiling glutin_glx_sys v0.1.6 [INFO] [stderr] Compiling glutin_egl_sys v0.1.4 [INFO] [stderr] Compiling gfx_gl v0.6.1 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling cpal v0.8.2 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling gfx v0.18.2 [INFO] [stderr] Compiling directories v2.0.2 [INFO] [stderr] Compiling wayland-client v0.21.13 [INFO] [stderr] Compiling wayland-protocols v0.21.13 [INFO] [stderr] Compiling minimp3 v0.3.5 [INFO] [stderr] Compiling sid v0.5.2 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling bzip2 v0.3.3 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling alga v0.9.3 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling toml v0.5.6 [INFO] [stderr] Compiling zip v0.5.6 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling glyph_brush_layout v0.1.9 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling wayland-commons v0.21.13 [INFO] [stderr] Compiling nalgebra v0.18.1 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling twox-hash v1.5.0 [INFO] [stderr] Compiling gilrs-core v0.2.6 [INFO] [stderr] Compiling glyph_brush v0.6.3 [INFO] [stderr] Compiling gilrs v0.7.4 [INFO] [stderr] Compiling glyph_brush v0.5.4 [INFO] [stderr] Compiling gfx_device_gl v0.16.2 [INFO] [stderr] Compiling euclid_macros v0.1.0 [INFO] [stderr] Compiling smart-default v0.5.2 [INFO] [stderr] Compiling euclid v0.19.9 [INFO] [stderr] Compiling lyon_geom v0.12.7 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling lyon_path v0.13.2 [INFO] [stderr] Compiling image v0.22.5 [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [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/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] = note: `#[warn(unused_mut)]` 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] [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 `std::result::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 `std::result::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 3m 21s [INFO] running `Command { std: "docker" "inspect" "e0d4afcba6134e7bbe7093fae3151f055089e0389651547245b8ccd8c839e98f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0d4afcba6134e7bbe7093fae3151f055089e0389651547245b8ccd8c839e98f", kill_on_drop: false }` [INFO] [stdout] e0d4afcba6134e7bbe7093fae3151f055089e0389651547245b8ccd8c839e98f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "rustops/crates-build-env@sha256:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8697abeca76f2958ddd10a7d9c50bebb1002108f5d81e9504ee0d17e84fec390 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "8697abeca76f2958ddd10a7d9c50bebb1002108f5d81e9504ee0d17e84fec390", 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [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/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] = note: `#[warn(unused_mut)]` 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] [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 `std::result::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 `std::result::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 1.20s [INFO] running `Command { std: "docker" "inspect" "8697abeca76f2958ddd10a7d9c50bebb1002108f5d81e9504ee0d17e84fec390", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8697abeca76f2958ddd10a7d9c50bebb1002108f5d81e9504ee0d17e84fec390", kill_on_drop: false }` [INFO] [stdout] 8697abeca76f2958ddd10a7d9c50bebb1002108f5d81e9504ee0d17e84fec390 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "rustops/crates-build-env@sha256:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 18a3da361ad1f73156336765ba7d7e0ec57f2fcd71459d1989747d7a5077132c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "18a3da361ad1f73156336765ba7d7e0ec57f2fcd71459d1989747d7a5077132c", 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [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/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] = note: `#[warn(unused_mut)]` 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] 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 `std::result::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 `std::result::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: 29 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/ggez_space_invaders-1cfd79ae85128fbf [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 [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "18a3da361ad1f73156336765ba7d7e0ec57f2fcd71459d1989747d7a5077132c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18a3da361ad1f73156336765ba7d7e0ec57f2fcd71459d1989747d7a5077132c", kill_on_drop: false }` [INFO] [stdout] 18a3da361ad1f73156336765ba7d7e0ec57f2fcd71459d1989747d7a5077132c