[INFO] cloning repository https://github.com/gigiwotou/fd2_freebuff [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gigiwotou/fd2_freebuff" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgigiwotou%2Ffd2_freebuff", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgigiwotou%2Ffd2_freebuff'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0919a9a89a621be45cea00606130954b5680da00 [INFO] testing gigiwotou/fd2_freebuff against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgigiwotou%2Ffd2_freebuff" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/gigiwotou/fd2_freebuff [INFO] finished tweaking git repo https://github.com/gigiwotou/fd2_freebuff [INFO] tweaked toml for git repo https://github.com/gigiwotou/fd2_freebuff written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/gigiwotou/fd2_freebuff on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/gigiwotou/fd2_freebuff 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded minifb v0.28.0 [INFO] [stderr] Downloaded sdl2 v0.38.0 [INFO] [stderr] Downloaded sdl2-sys v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993 [INFO] running `Command { std: "docker" "start" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling xcursor v0.3.10 [INFO] [stderr] Compiling raw-window-handle v0.6.2 [INFO] [stderr] Compiling dlib v0.5.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling minifb v0.28.0 [INFO] [stderr] Compiling nix v0.24.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling wayland-commons v0.29.5 [INFO] [stderr] Compiling wayland-cursor v0.29.5 [INFO] [stderr] Compiling fd2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `rol16` is never used [INFO] [stdout] --> src/crypto.rs:11:4 [INFO] [stdout] | [INFO] [stdout] 11 | fn rol16(value: u16, shift: u32) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prng_next` is never used [INFO] [stdout] --> src/crypto.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn prng_next(game: &mut GameState) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor_crypt` is never used [INFO] [stdout] --> src/crypto.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn xor_crypt(data: &mut [u8]) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `checksum` is never used [INFO] [stdout] --> src/crypto.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn checksum(data: &[u8], total_length: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_OFFSET_REC_SIZE` is never used [INFO] [stdout] --> src/data_tables.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const SPRITE_OFFSET_REC_SIZE: usize = 23; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ANIM_FRAME_REC_SIZE` is never used [INFO] [stdout] --> src/data_tables.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const ANIM_FRAME_REC_SIZE: usize = 7; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHAR_ATTR_REC_SIZE` is never used [INFO] [stdout] --> src/data_tables.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const CHAR_ATTR_REC_SIZE: usize = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MOVE_PATH_REC_SIZE` is never used [INFO] [stdout] --> src/data_tables.rs:30:11 [INFO] [stdout] | [INFO] [stdout] 30 | pub const MOVE_PATH_REC_SIZE: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NPC_ATTR_REC_SIZE` is never used [INFO] [stdout] --> src/data_tables.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub const NPC_ATTR_REC_SIZE: usize = 31; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpriteOffset` is never constructed [INFO] [stdout] --> src/data_tables.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct SpriteOffset { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/data_tables.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl SpriteOffset { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 56 | /// Parse from 23-byte raw data. [INFO] [stdout] 57 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_sprite_offset` is never used [INFO] [stdout] --> src/data_tables.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn get_sprite_offset(table: &[u8], index: usize) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnimFrame` is never constructed [INFO] [stdout] --> src/data_tables.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct AnimFrame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/data_tables.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl AnimFrame { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 107 | /// Parse from 7-byte raw data. [INFO] [stdout] 108 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_anim_frame` is never used [INFO] [stdout] --> src/data_tables.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn get_anim_frame(table: &[u8], index: usize) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CharAttr` is never constructed [INFO] [stdout] --> src/data_tables.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | pub struct CharAttr { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/data_tables.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 152 | impl CharAttr { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 153 | /// Parse from 20-byte raw data. [INFO] [stdout] 154 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_char_attr` is never used [INFO] [stdout] --> src/data_tables.rs:175:8 [INFO] [stdout] | [INFO] [stdout] 175 | pub fn get_char_attr(table: &[u8], index: usize) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_move_path` is never used [INFO] [stdout] --> src/data_tables.rs:194:8 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn get_move_path(table: &[u8], index: usize) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_npc_attr` is never used [INFO] [stdout] --> src/data_tables.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn get_npc_attr(table: &[u8], index: usize) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TileEntry` is never constructed [INFO] [stdout] --> src/data_tables.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 235 | pub struct TileEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_field_data` is never used [INFO] [stdout] --> src/data_tables.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | pub fn parse_field_data(data: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GameState` is never constructed [INFO] [stdout] --> src/game_state.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct GameState { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `read_tick` are never used [INFO] [stdout] --> src/game_state.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl GameState { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 47 | /// Create a new game state with default values matching the original game's initialization. [INFO] [stdout] 48 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn read_tick(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_opcode` is never used [INFO] [stdout] --> src/rle.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn decode_opcode(byte: u8) -> (u8, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RleMode` is never used [INFO] [stdout] --> src/rle.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum RleMode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `standard`, `fill`, and `palette_offset` are never used [INFO] [stdout] --> src/rle.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl RleMode { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 57 | /// Create Standard mode (value_1 == -1). [INFO] [stdout] 58 | pub fn standard() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn fill(value: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn palette_offset(value_1: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode` is never used [INFO] [stdout] --> src/rle.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn rle_decode( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_transparent` is never used [INFO] [stdout] --> src/rle.rs:359:8 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn rle_decode_tile_24_transparent(src: &[u8], dst: &mut [u8], dst_stride: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_marker_fill` is never used [INFO] [stdout] --> src/rle.rs:371:8 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn rle_decode_tile_24_marker_fill(src: &[u8], dst: &mut [u8], dst_stride: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_palette_map` is never used [INFO] [stdout] --> src/rle.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn rle_decode_tile_24_palette_map( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_palette_offset` is never used [INFO] [stdout] --> src/rle.rs:399:8 [INFO] [stdout] | [INFO] [stdout] 399 | pub fn rle_decode_tile_24_palette_offset( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TileMode` is never used [INFO] [stdout] --> src/rle.rs:414:6 [INFO] [stdout] | [INFO] [stdout] 414 | enum TileMode<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_impl` is never used [INFO] [stdout] --> src/rle.rs:421:4 [INFO] [stdout] | [INFO] [stdout] 421 | fn rle_decode_tile_24_impl(src: &[u8], dst: &mut [u8], dst_stride: usize, mode: TileMode) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_pixel` is never used [INFO] [stdout] --> src/rle.rs:528:4 [INFO] [stdout] | [INFO] [stdout] 528 | fn map_pixel(pixel: u8, mode: &TileMode) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `should_write` is never used [INFO] [stdout] --> src/rle.rs:543:4 [INFO] [stdout] | [INFO] [stdout] 543 | fn should_write(op_type: u8, _mode: &TileMode) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpritePixelDecoder` is never constructed [INFO] [stdout] --> src/sprite.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct SpritePixelDecoder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `next_pixel`, `is_exhausted`, `position`, and `remaining_repeats` are never used [INFO] [stdout] --> src/sprite.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl<'a> SpritePixelDecoder<'a> { [INFO] [stdout] | ------------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn new(data: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn next_pixel(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn is_exhausted(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn position(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn remaining_repeats(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_sprite_header` is never used [INFO] [stdout] --> src/sprite.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn parse_sprite_header(data: &[u8]) -> Option<(u16, u16)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 46.85s [INFO] running `Command { std: "docker" "inspect" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling fd2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `AnimFrame` is never constructed [INFO] [stdout] --> src/data_tables.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct AnimFrame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/data_tables.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl AnimFrame { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 107 | /// Parse from 7-byte raw data. [INFO] [stdout] 108 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CharAttr` is never constructed [INFO] [stdout] --> src/data_tables.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | pub struct CharAttr { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/data_tables.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 152 | impl CharAttr { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 153 | /// Parse from 20-byte raw data. [INFO] [stdout] 154 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TileEntry` is never constructed [INFO] [stdout] --> src/data_tables.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 235 | pub struct TileEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/game_state.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct GameState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | pub vga_stride: u16, // word_627A3: display buffer row width (320 or 456) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub copy_width: u16, // count_0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub palette_anim_last_tick: u32, // word_60000: last tick when palette animation updated [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | pub palette_anim_frame: u8, // byte_60002: current animation frame index (0-15) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | pub palette_anim_data: [u8; 768],// unk_60003: 16 frames × 16 colors × 3 bytes (R,G,B) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub tile_anim_last_tick: u32, // dword_539F4: last tick for 20-step tile animation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | pub tile_anim_step: u32, // dword_53C1F: tile animation step counter (0-19) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub tile_anim_locked_frame: i32, // dword_51A93: -1=auto cycle, other=locked frame [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub flip_last_tick: u32, // dword_53A00: last tick for flip toggle [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub flip_flag: u8, // dword_53A40 (low byte): toggles 0/1 each tick [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fullframe_last_tick: u32, // dword_539F8: last tick for full-frame anim [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub fullframe_frame_idx: u32, // dword_539FC: current full-frame index (0-15) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub scene_index: u16, // n17: current scene/map index [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub tick_offset: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_tick` is never used [INFO] [stdout] --> src/game_state.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl GameState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn read_tick(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PaletteOffset` is never constructed [INFO] [stdout] --> src/rle.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum RleMode { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 53 | PaletteOffset { base_hi: u8, base_lo: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RleMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `standard` and `palette_offset` are never used [INFO] [stdout] --> src/rle.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl RleMode { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 57 | /// Create Standard mode (value_1 == -1). [INFO] [stdout] 58 | pub fn standard() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn palette_offset(value_1: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rle_decode_tile_24_palette_map` is never used [INFO] [stdout] --> src/rle.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn rle_decode_tile_24_palette_map( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PaletteMap` is never constructed [INFO] [stdout] --> src/rle.rs:417:5 [INFO] [stdout] | [INFO] [stdout] 414 | enum TileMode<'a> { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 417 | PaletteMap { palette: &'a [u8] }, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TileMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.92s [INFO] running `Command { std: "docker" "inspect" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: struct `AnimFrame` is never constructed [INFO] [stderr] --> src/data_tables.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 98 | pub struct AnimFrame { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: associated function `from_bytes` is never used [INFO] [stderr] --> src/data_tables.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 106 | impl AnimFrame { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] 107 | /// Parse from 7-byte raw data. [INFO] [stderr] 108 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CharAttr` is never constructed [INFO] [stderr] --> src/data_tables.rs:140:12 [INFO] [stderr] | [INFO] [stderr] 140 | pub struct CharAttr { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `from_bytes` is never used [INFO] [stderr] --> src/data_tables.rs:154:12 [INFO] [stderr] | [INFO] [stderr] 152 | impl CharAttr { [INFO] [stderr] | ------------- associated function in this implementation [INFO] [stderr] 153 | /// Parse from 20-byte raw data. [INFO] [stderr] 154 | pub fn from_bytes(data: &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TileEntry` is never constructed [INFO] [stderr] --> src/data_tables.rs:235:12 [INFO] [stderr] | [INFO] [stderr] 235 | pub struct TileEntry { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/game_state.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct GameState { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 12 | pub vga_stride: u16, // word_627A3: display buffer row width (320 or 456) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 19 | pub copy_width: u16, // count_0 [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 22 | pub palette_anim_last_tick: u32, // word_60000: last tick when palette animation updated [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 23 | pub palette_anim_frame: u8, // byte_60002: current animation frame index (0-15) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 24 | pub palette_anim_data: [u8; 768],// unk_60003: 16 frames × 16 colors × 3 bytes (R,G,B) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 27 | pub tile_anim_last_tick: u32, // dword_539F4: last tick for 20-step tile animation [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | pub tile_anim_step: u32, // dword_53C1F: tile animation step counter (0-19) [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 29 | pub tile_anim_locked_frame: i32, // dword_51A93: -1=auto cycle, other=locked frame [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 32 | pub flip_last_tick: u32, // dword_53A00: last tick for flip toggle [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 33 | pub flip_flag: u8, // dword_53A40 (low byte): toggles 0/1 each tick [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 36 | pub fullframe_last_tick: u32, // dword_539F8: last tick for full-frame anim [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 37 | pub fullframe_frame_idx: u32, // dword_539FC: current full-frame index (0-15) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | pub scene_index: u16, // n17: current scene/map index [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 43 | pub tick_offset: std::time::Instant, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `read_tick` is never used [INFO] [stderr] --> src/game_state.rs:74:12 [INFO] [stderr] | [INFO] [stderr] 46 | impl GameState { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 74 | pub fn read_tick(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `PaletteOffset` is never constructed [INFO] [stderr] --> src/rle.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub enum RleMode { [INFO] [stderr] | ------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 53 | PaletteOffset { base_hi: u8, base_lo: u8 }, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RleMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated functions `standard` and `palette_offset` are never used [INFO] [stderr] --> src/rle.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 56 | impl RleMode { [INFO] [stderr] | ------------ associated functions in this implementation [INFO] [stderr] 57 | /// Create Standard mode (value_1 == -1). [INFO] [stderr] 58 | pub fn standard() -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 71 | pub fn palette_offset(value_1: u16) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rle_decode_tile_24_palette_map` is never used [INFO] [stderr] --> src/rle.rs:383:8 [INFO] [stderr] | [INFO] [stderr] 383 | pub fn rle_decode_tile_24_palette_map( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `PaletteMap` is never constructed [INFO] [stderr] --> src/rle.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 414 | enum TileMode<'a> { [INFO] [stderr] | -------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 417 | PaletteMap { palette: &'a [u8] }, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TileMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `fd2` (bin "fd2" test) generated 11 warnings [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.08s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/fd2-7fcc973a573f7c6f) [INFO] [stdout] running 36 tests [INFO] [stdout] test data_tables::tests::test_npc_attr_lookup ... ok [INFO] [stdout] test crypto::tests::test_xor_crypt_roundtrip ... ok [INFO] [stdout] test data_tables::tests::test_parse_field_data ... ok [INFO] [stdout] test data_tables::tests::test_sprite_offset_lookup ... ok [INFO] [stdout] test rle::tests::test_rle_decode_with_skip ... ok [INFO] [stdout] test rle::tests::test_rle_decode_standard_basic ... ok [INFO] [stdout] test crypto::tests::test_rol16 ... ok [INFO] [stdout] test crypto::tests::test_checksum_full_range ... ok [INFO] [stdout] test crypto::tests::test_checksum_basic ... ok [INFO] [stdout] test crypto::tests::test_xor_crypt_empty ... ok [INFO] [stdout] test crypto::tests::test_prng_deterministic ... ok [INFO] [stdout] test rle::tests::test_decode_opcode ... ok [INFO] [stdout] test data_tables::tests::test_anim_frame_lookup ... ok [INFO] [stdout] test rle::tests::test_rle_decode_fill_mode ... ok [INFO] [stdout] test data_tables::tests::test_char_attr_lookup ... ok [INFO] [stdout] test data_tables::tests::test_move_path_invalid_low_index ... ok [INFO] [stdout] test data_tables::tests::test_sprite_offset_parse ... ok [INFO] [stdout] test rle::tests::test_tile_24_palette_offset ... ok [INFO] [stdout] test sprite::tests::test_consecutive_repeats ... ok [INFO] [stdout] test sprite::tests::test_full_sprite_decode_simulation ... ok [INFO] [stdout] test sprite::tests::test_min_repeat_0xc2 ... ok [INFO] [stdout] test sprite::tests::test_parse_sprite_header ... ok [INFO] [stdout] test sprite::tests::test_parse_sprite_header_too_short ... ok [INFO] [stdout] test sprite::tests::test_position_tracking ... ok [INFO] [stdout] test sprite::tests::test_repeat_zero_pixel ... ok [INFO] [stdout] test sprite::tests::test_truncated_repeat_marker ... ok [INFO] [stdout] test sprite::tests::test_escape_for_high_pixel_values ... ok [INFO] [stdout] test rle::tests::test_tile_24_marker_fill ... ok [INFO] [stdout] test rle::tests::test_tile_24_transparent ... ok [INFO] [stdout] test sprite::tests::test_mixed_literal_and_repeat ... ok [INFO] [stdout] test sprite::tests::test_single_literal_pixels ... ok [INFO] [stdout] test sprite::tests::test_max_repeat_0xff ... ok [INFO] [stdout] test sprite::tests::test_escape_encoding_0xc1 ... ok [INFO] [stdout] test sprite::tests::test_zero_pixel_literal ... ok [INFO] [stdout] test sprite::tests::test_boundary_0xc0_literal ... ok [INFO] [stdout] test sprite::tests::test_empty_data ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993", kill_on_drop: false }` [INFO] [stdout] 5d83612fe9947f92e5cd276b695b151cd7a5d5f2b7e557d9b8d820cedf4f4993