[INFO] cloning repository https://github.com/jestarray/handmadehero-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jestarray/handmadehero-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjestarray%2Fhandmadehero-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjestarray%2Fhandmadehero-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 82d62c17859f7c960ca204e2b407980568e8a9d0
[INFO] documenting jestarray/handmadehero-rust against 1.69.0 for beta-1.70-rustdoc-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjestarray%2Fhandmadehero-rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jestarray/handmadehero-rust on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/jestarray/handmadehero-rust
[INFO] finished tweaking git repo https://github.com/jestarray/handmadehero-rust
[INFO] tweaked toml for git repo https://github.com/jestarray/handmadehero-rust written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/jestarray/handmadehero-rust 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.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: lib.src
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] efd159f15495ac2cf07eede8de6f6f5e638bf4cd82acc8d9cc5179e067f66461
[INFO] running `Command { std: "docker" "start" "-a" "efd159f15495ac2cf07eede8de6f6f5e638bf4cd82acc8d9cc5179e067f66461", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efd159f15495ac2cf07eede8de6f6f5e638bf4cd82acc8d9cc5179e067f66461", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efd159f15495ac2cf07eede8de6f6f5e638bf4cd82acc8d9cc5179e067f66461", kill_on_drop: false }`
[INFO] [stdout] efd159f15495ac2cf07eede8de6f6f5e638bf4cd82acc8d9cc5179e067f66461
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afeb35dc39972707f8cb49998193a09e938a7fe38c9d44e1019efb2a07880f29
[INFO] running `Command { std: "docker" "start" "-a" "afeb35dc39972707f8cb49998193a09e938a7fe38c9d44e1019efb2a07880f29", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: lib.src
[INFO] [stderr]     Checking handmadehero-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]  Documenting handmadehero-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]   --> src/handmade_math.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     return (result);
[INFO] [stdout]    |            ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -     return (result);
[INFO] [stdout] 97 +     return result;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/handmade_math.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |     return (result);
[INFO] [stdout]     |            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 102 -     return (result);
[INFO] [stdout] 102 +     return result;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/handmade_math.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 |     return (result);
[INFO] [stdout]     |            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -     return (result);
[INFO] [stdout] 107 +     return result;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `allow_bad_style`
[INFO] [stdout]  --> src/handmade_world.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![allow(allow_bad_style)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/handmade_world.rs:53:38
[INFO] [stdout]    |
[INFO] [stdout] 53 | static TILE_CHUNK_SAFE_MARGIN: i32 = (std::i32::MAX / 64);
[INFO] [stdout]    |                                      ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 - static TILE_CHUNK_SAFE_MARGIN: i32 = (std::i32::MAX / 64);
[INFO] [stdout] 53 + static TILE_CHUNK_SAFE_MARGIN: i32 = std::i32::MAX / 64;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/handmade.rs:959:32
[INFO] [stdout]     |
[INFO] [stdout] 959 | ...                   if ((*Low).HighEntityIndex == 0) {
[INFO] [stdout]     |                          ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 959 -                             if ((*Low).HighEntityIndex == 0) {
[INFO] [stdout] 959 +                             if (*Low).HighEntityIndex == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/handmade.rs:961:36
[INFO] [stdout]     |
[INFO] [stdout] 961 | ...                   if (IsInRectangle(CameraBounds, CameraSpaceP)) {
[INFO] [stdout]     |                          ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 961 -                                 if (IsInRectangle(CameraBounds, CameraSpaceP)) {
[INFO] [stdout] 961 +                                 if IsInRectangle(CameraBounds, CameraSpaceP) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]   --> src/handmade_math.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     return (result);
[INFO] [stdout]    |            ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -     return (result);
[INFO] [stdout] 97 +     return result;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/handmade_math.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |     return (result);
[INFO] [stdout]     |            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 102 -     return (result);
[INFO] [stdout] 102 +     return result;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/handmade_math.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 |     return (result);
[INFO] [stdout]     |            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -     return (result);
[INFO] [stdout] 107 +     return result;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `allow_bad_style`
[INFO] [stdout]  --> src/handmade_world.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![allow(allow_bad_style)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/handmade_world.rs:53:38
[INFO] [stdout]    |
[INFO] [stdout] 53 | static TILE_CHUNK_SAFE_MARGIN: i32 = (std::i32::MAX / 64);
[INFO] [stdout]    |                                      ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 - static TILE_CHUNK_SAFE_MARGIN: i32 = (std::i32::MAX / 64);
[INFO] [stdout] 53 + static TILE_CHUNK_SAFE_MARGIN: i32 = std::i32::MAX / 64;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/handmade.rs:959:32
[INFO] [stdout]     |
[INFO] [stdout] 959 | ...                   if ((*Low).HighEntityIndex == 0) {
[INFO] [stdout]     |                          ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 959 -                             if ((*Low).HighEntityIndex == 0) {
[INFO] [stdout] 959 +                             if (*Low).HighEntityIndex == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/handmade.rs:961:36
[INFO] [stdout]     |
[INFO] [stdout] 961 | ...                   if (IsInRectangle(CameraBounds, CameraSpaceP)) {
[INFO] [stdout]     |                          ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 961 -                                 if (IsInRectangle(CameraBounds, CameraSpaceP)) {
[INFO] [stdout] 961 +                                 if IsInRectangle(CameraBounds, CameraSpaceP) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `World`
[INFO] [stdout]   --> src/handmade_world.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn AreInSameChunk(World: &world, A: &world_position, B: &world_position) -> bool {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_World`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `OldBlock` is never read
[INFO] [stdout]    --> src/handmade_world.rs:297:21
[INFO] [stdout]     |
[INFO] [stdout] 297 |                     OldBlock = Some(PushStruct::<world_entity_block>(Arena));
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Y`
[INFO] [stdout]    --> src/handmade.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         for Y in MinY..MaxY
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_Y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `X`
[INFO] [stdout]    --> src/handmade.rs:370:17
[INFO] [stdout]     |
[INFO] [stdout] 370 |             for X in MinX..MaxX
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_X`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Y`
[INFO] [stdout]    --> src/handmade.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |         for Y in 0..Header.Height
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_Y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `X`
[INFO] [stdout]    --> src/handmade.rs:455:17
[INFO] [stdout]     |
[INFO] [stdout] 455 |             for X in 0..Header.Width
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_X`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `EntityHigh` is never read
[INFO] [stdout]    --> src/handmade.rs:535:13
[INFO] [stdout]     |
[INFO] [stdout] 535 |     let mut EntityHigh: Option<&mut high_entity> = None;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `HighEntityIndex` is never read
[INFO] [stdout]    --> src/handmade.rs:537:13
[INFO] [stdout]     |
[INFO] [stdout] 537 |     let mut HighEntityIndex = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `World`
[INFO] [stdout]    --> src/handmade.rs:723:13
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let mut World = GameState.world.as_mut().unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_World`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `LowIndex`
[INFO] [stdout]    --> src/handmade.rs:751:13
[INFO] [stdout]     |
[INFO] [stdout] 751 |             LowIndex,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `LowIndex: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `NewPlayerP`
[INFO] [stdout]    --> src/handmade.rs:759:17
[INFO] [stdout]     |
[INFO] [stdout] 759 |             let NewPlayerP = OldPlayerP + PlayerDelta;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_NewPlayerP`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `HitLow`
[INFO] [stdout]    --> src/handmade.rs:868:25
[INFO] [stdout]     |
[INFO] [stdout] 868 |                     let HitLow = &GameState.LowEntities[HitHigh.LowEntityIndex as usize];
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_HitLow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `PlayerWidth`
[INFO] [stdout]    --> src/handmade.rs:994:13
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let PlayerWidth: f32 = 0.75 * PlayerHeight;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_PlayerWidth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ScreenIndex`
[INFO] [stdout]     --> src/handmade.rs:1128:17
[INFO] [stdout]      |
[INFO] [stdout] 1128 |             for ScreenIndex in 0..2000
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ScreenIndex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `NewCameraP` is never read
[INFO] [stdout]     --> src/handmade.rs:1239:21
[INFO] [stdout]      |
[INFO] [stdout] 1239 |             let mut NewCameraP = world_position::default();
[INFO] [stdout]      |                     ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `LowerLeftX`
[INFO] [stdout]     --> src/handmade.rs:1259:13
[INFO] [stdout]      |
[INFO] [stdout] 1259 |         let LowerLeftX = -(TileSideInPixels / 2) as f32;
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_LowerLeftX`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `LowerLeftY`
[INFO] [stdout]     --> src/handmade.rs:1260:13
[INFO] [stdout]      |
[INFO] [stdout] 1260 |         let LowerLeftY = buffer.height as f32;
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_LowerLeftY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `High`
[INFO] [stdout]     --> src/handmade.rs:1321:32
[INFO] [stdout]      |
[INFO] [stdout] 1321 |                     High: Some(High),
[INFO] [stdout]      |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_High`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `PlayerR`
[INFO] [stdout]     --> src/handmade.rs:1437:17
[INFO] [stdout]      |
[INFO] [stdout] 1437 |             let PlayerR = 1.0;
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_PlayerR`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `PlayerG`
[INFO] [stdout]     --> src/handmade.rs:1438:17
[INFO] [stdout]      |
[INFO] [stdout] 1438 |             let PlayerG = 1.0;
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_PlayerG`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `PlayerB`
[INFO] [stdout]     --> src/handmade.rs:1439:17
[INFO] [stdout]      |
[INFO] [stdout] 1439 |             let PlayerB = 0.0;
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_PlayerB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `PlayerLeftTop`
[INFO] [stdout]     --> src/handmade.rs:1443:17
[INFO] [stdout]      |
[INFO] [stdout] 1443 |             let PlayerLeftTop = v2 {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_PlayerLeftTop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `EntityWidthHeight`
[INFO] [stdout]     --> src/handmade.rs:1447:17
[INFO] [stdout]      |
[INFO] [stdout] 1447 |             let EntityWidthHeight = v2 {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_EntityWidthHeight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_state`
[INFO] [stdout]     --> src/handmade.rs:1577:5
[INFO] [stdout]      |
[INFO] [stdout] 1577 |     game_state: *mut GameState,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]     --> src/handmade.rs:1578:5
[INFO] [stdout]      |
[INFO] [stdout] 1578 |     buffer: &mut game_sound_output_buffer,
[INFO] [stdout]      |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tone_hz`
[INFO] [stdout]     --> src/handmade.rs:1579:5
[INFO] [stdout]      |
[INFO] [stdout] 1579 |     tone_hz: u32,
[INFO] [stdout]      |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tone_hz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread`
[INFO] [stdout]     --> src/handmade.rs:1602:5
[INFO] [stdout]      |
[INFO] [stdout] 1602 |     thread: &thread_context,
[INFO] [stdout]      |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handmade.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 532 |     mut GameState: &'a mut GameState,
[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/handmade.rs:587:21
[INFO] [stdout]     |
[INFO] [stdout] 587 |                 let mut DelEntity =
[INFO] [stdout]     |                     ----^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handmade.rs:723:9
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let mut World = GameState.world.as_mut().unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/handmade_world.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 94  |     unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 108 |                 unsafe {
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dAbsTileZ` is never read
[INFO] [stdout]    --> src/handmade.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | struct low_entity {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 187 |     dAbsTileZ: i32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `low_entity` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PushArray` is never used
[INFO] [stdout]    --> src/handmade.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn PushArray<T>(arena: &mut memory_arena, count: u32) -> &mut T {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `GetCenter` is never used
[INFO] [stdout]    --> src/handmade_math.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn GetCenter(Rect: rectangle2) -> v2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `RectMinMax` is never used
[INFO] [stdout]    --> src/handmade_math.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn RectMinMax(Min: v2, Max: v2) -> rectangle2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `RectMinDim` is never used
[INFO] [stdout]    --> src/handmade_math.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn RectMinDim(Min: v2, Dim: v2) -> rectangle2 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TILE_CHUNK_SAFE_MARGIN` is never used
[INFO] [stdout]   --> src/handmade_world.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | static TILE_CHUNK_SAFE_MARGIN: i32 = (std::i32::MAX / 64);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `IsCanonical` is never used
[INFO] [stdout]   --> src/handmade_world.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn IsCanonical(World: &world, TileRel: f32) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `IsCanonical_v2` is never used
[INFO] [stdout]   --> src/handmade_world.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn IsCanonical_v2(World: &world, Offset: v2) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `CenteredChunkPoint` is never used
[INFO] [stdout]    --> src/handmade_world.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn CenteredChunkPoint(ChunkX: u32, ChunkY: u32, ChunkZ: u32) -> world_position {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 47 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `windows` in `os`
[INFO] [stdout]   --> src/win32_handmade.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     os::windows::ffi::OsStrExt,
[INFO] [stdout]    |         ^^^^^^^ could not find `windows` in `os`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use winapi::um::minwinbase::GetFileExInfoStandard;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use winapi::um::winuser::GetMonitorInfoA;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use winapi::um::winuser::GetWindowLongA;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use winapi::um::winuser::GetWindowPlacement;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use winapi::um::winuser::MonitorFromWindow;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use winapi::um::winuser::SetCursor;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use winapi::um::winuser::SetWindowLongA;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use winapi::um::winuser::SetWindowPlacement;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use winapi::um::winuser::GWL_STYLE;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use winapi::um::winuser::HWND_TOP;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use winapi::um::winuser::MONITOR_DEFAULTTOPRIMARY;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use winapi::um::winuser::WM_SETCURSOR;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use winapi::{
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use winapi::um::winuser::SetWindowPos;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | use winapi::um::{
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | use winapi::um::fileapi::WIN32_FILE_ATTRIBUTE_DATA;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | use winapi::um::winuser::LoadCursorW;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | use winapi::um::winuser::IDC_ARROW;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | use winapi::um::winuser::MONITORINFO;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | use winapi::um::winuser::SWP_FRAMECHANGED;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | use winapi::um::winuser::SWP_NOMOVE;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | use winapi::um::winuser::SWP_NOOWNERZORDER;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use winapi::um::winuser::SWP_NOSIZE;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | use winapi::um::winuser::SWP_NOZORDER;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | use winapi::um::winuser::WINDOWPLACEMENT;
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | use winapi::um::{
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | use winapi::um::{
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `winapi`
[INFO] [stdout]   --> src/win32_handmade.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | use winapi::{
[INFO] [stdout]    |     ^^^^^^ use of undeclared crate or module `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/win32_handmade.rs:1021:12
[INFO] [stdout]      |
[INFO] [stdout] 1021 |         if (BytesRead == 0) {
[INFO] [stdout]      |            ^              ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1021 -         if (BytesRead == 0) {
[INFO] [stdout] 1021 +         if BytesRead == 0 {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/win32_handmade.rs:1315:5
[INFO] [stdout]      |
[INFO] [stdout] 1315 |     ((end.QuadPart() - start.QuadPart()) as f32 / PERF_COUNT_FREQUENCY as f32) //as f32, moving cast out here drastically changes value. ...
[INFO] [stdout]      |     ^                                                                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1315 -     ((end.QuadPart() - start.QuadPart()) as f32 / PERF_COUNT_FREQUENCY as f32) //as f32, moving cast out here drastically changes value. look into why
[INFO] [stdout] 1315 +     (end.QuadPart() - start.QuadPart()) as f32 / PERF_COUNT_FREQUENCY as f32 //as f32, moving cast out here drastically changes value. look into why
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> src/win32_handmade.rs:1549:21
[INFO] [stdout]      |
[INFO] [stdout] 1549 |                 for (ReplayBuffer) in State.ReplayBuffers.iter_mut()
[INFO] [stdout]      |                     ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1549 -                 for (ReplayBuffer) in State.ReplayBuffers.iter_mut()
[INFO] [stdout] 1549 +                 for ReplayBuffer in State.ReplayBuffers.iter_mut()
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/win32_handmade.rs:1931:52
[INFO] [stdout]      |
[INFO] [stdout] 1931 | ...                   TargetCursor = (WriteCursor as i32
[INFO] [stdout]      |                                      ^
[INFO] [stdout] 1932 | ...                       + ExpectedSoundBytesPerFrame
[INFO] [stdout] 1933 | ...                       + SoundOutput.SafetyBytes as i32);
[INFO] [stdout]      |                                                           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1931 ~                                     TargetCursor = WriteCursor as i32
[INFO] [stdout] 1932 |                                         + ExpectedSoundBytesPerFrame
[INFO] [stdout] 1933 ~                                         + SoundOutput.SafetyBytes as i32;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/win32_handmade.rs:1936:37
[INFO] [stdout]      |
[INFO] [stdout] 1936 | ...                   (TargetCursor % SoundOutput.SecondaryBufferSize as i32);
[INFO] [stdout]      |                       ^                                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1936 -                                     (TargetCursor % SoundOutput.SecondaryBufferSize as i32);
[INFO] [stdout] 1936 +                                     TargetCursor % SoundOutput.SecondaryBufferSize as i32;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/win32_handmade.rs:1940:52
[INFO] [stdout]      |
[INFO] [stdout] 1940 | ...                   BytesToWrite = (SoundOutput.SecondaryBufferSize - ByteToLock);
[INFO] [stdout]      |                                      ^                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1940 -                                     BytesToWrite = (SoundOutput.SecondaryBufferSize - ByteToLock);
[INFO] [stdout] 1940 +                                     BytesToWrite = SoundOutput.SecondaryBufferSize - ByteToLock;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `c_void`
[INFO] [stdout]    --> src/win32_handmade.rs:123:23
[INFO] [stdout]     |
[INFO] [stdout] 123 |     memory: 0 as *mut c_void,
[INFO] [stdout]     |                       ^^^^^^ could not resolve path `c_void`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `BITMAPINFO`
[INFO] [stdout]    --> src/win32_handmade.rs:128:11
[INFO] [stdout]     |
[INFO] [stdout] 128 |     info: BITMAPINFO {
[INFO] [stdout]     |           ^^^^^^^^^^ could not resolve path `BITMAPINFO`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `BITMAPINFOHEADER`
[INFO] [stdout]    --> src/win32_handmade.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         bmiHeader: BITMAPINFOHEADER {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^ could not resolve path `BITMAPINFOHEADER`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `BI_RGB`
[INFO] [stdout]    --> src/win32_handmade.rs:135:28
[INFO] [stdout]     |
[INFO] [stdout] 135 |             biCompression: BI_RGB,
[INFO] [stdout]     |                            ^^^^^^ could not resolve path `BI_RGB`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `RGBQUAD`
[INFO] [stdout]    --> src/win32_handmade.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |         bmiColors: [RGBQUAD {
[INFO] [stdout]     |                     ^^^^^^^ could not resolve path `RGBQUAD`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `WINDOWPLACEMENT`
[INFO] [stdout]    --> src/win32_handmade.rs:154:52
[INFO] [stdout]     |
[INFO] [stdout] 154 | static mut GlobalWindowPosition: WINDOWPLACEMENT = WINDOWPLACEMENT {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^ could not resolve path `WINDOWPLACEMENT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `POINT`
[INFO] [stdout]    --> src/win32_handmade.rs:158:20
[INFO] [stdout]     |
[INFO] [stdout] 158 |     ptMinPosition: POINT { x: 0, y: 0 },
[INFO] [stdout]     |                    ^^^^^ could not resolve path `POINT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `POINT`
[INFO] [stdout]    --> src/win32_handmade.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |     ptMaxPosition: POINT { x: 0, y: 0 },
[INFO] [stdout]     |                    ^^^^^ could not resolve path `POINT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not resolve path `RECT`
[INFO] [stdout]    --> src/win32_handmade.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     rcNormalPosition: RECT {
[INFO] [stdout]     |                       ^^^^ could not resolve path `RECT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error was originally ignored because you are running `rustdoc`
[INFO] [stdout]     = note: try running again with `rustc` or `cargo check` and you may get a more detailed error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 38 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not document `handmadehero-rust`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `rustdoc --edition=2018 --crate-type bin --crate-name win32_handmade src/win32_handmade.rs -o /opt/rustwide/target/doc --cfg 'feature="default"' --cfg 'feature="handmade_internal"' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --document-private-items '-Arustdoc::private-intra-doc-links' -C metadata=10d425d0591aac5a -L dependency=/opt/rustwide/target/debug/deps --extern handmade=/opt/rustwide/target/debug/deps/libhandmade-d27c1b5b0be4bb3f.rmeta --cap-lints=warn --crate-version 0.1.0` (exit status: 1)
[INFO] running `Command { std: "docker" "inspect" "afeb35dc39972707f8cb49998193a09e938a7fe38c9d44e1019efb2a07880f29", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afeb35dc39972707f8cb49998193a09e938a7fe38c9d44e1019efb2a07880f29", kill_on_drop: false }`
[INFO] [stdout] afeb35dc39972707f8cb49998193a09e938a7fe38c9d44e1019efb2a07880f29
