[INFO] cloning repository https://github.com/Jeklah/platformer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jeklah/platformer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJeklah%2Fplatformer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJeklah%2Fplatformer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 71e850a5f4689cddc340ea6cec21862f061ccac7 [INFO] building Jeklah/platformer against try#23647e694de8d0904848ad068b2e0ec2dd098c37+target=wasm32-wasip1 for pr-149868 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJeklah%2Fplatformer" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Jeklah/platformer [INFO] finished tweaking git repo https://github.com/Jeklah/platformer [INFO] tweaked toml for git repo https://github.com/Jeklah/platformer written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Jeklah/platformer on toolchain 23647e694de8d0904848ad068b2e0ec2dd098c37 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23647e694de8d0904848ad068b2e0ec2dd098c37" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Jeklah/platformer 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" "+23647e694de8d0904848ad068b2e0ec2dd098c37" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+23647e694de8d0904848ad068b2e0ec2dd098c37" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4aafd5998555d091df75846f0846a3fdbee0f3909bd02a51b53e3c80538c2e28 [INFO] running `Command { std: "docker" "start" "-a" "4aafd5998555d091df75846f0846a3fdbee0f3909bd02a51b53e3c80538c2e28", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4aafd5998555d091df75846f0846a3fdbee0f3909bd02a51b53e3c80538c2e28", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4aafd5998555d091df75846f0846a3fdbee0f3909bd02a51b53e3c80538c2e28", kill_on_drop: false }` [INFO] [stdout] 4aafd5998555d091df75846f0846a3fdbee0f3909bd02a51b53e3c80538c2e28 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+23647e694de8d0904848ad068b2e0ec2dd098c37" "build" "--frozen" "--message-format=json" "--target" "wasm32-wasip1", kill_on_drop: false }` [INFO] [stdout] 8c94ac5f8a0a9fb17c990c6957fb6e959c0a71deaafd81553833b72cd9ce94b5 [INFO] running `Command { std: "docker" "start" "-a" "8c94ac5f8a0a9fb17c990c6957fb6e959c0a71deaafd81553833b72cd9ce94b5", kill_on_drop: false }` [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling miniquad v0.4.8 [INFO] [stderr] Compiling bytemuck v1.23.1 [INFO] [stderr] Compiling ttf-parser v0.21.1 [INFO] [stderr] Compiling glam v0.27.0 [INFO] [stderr] Compiling quad-rand v0.2.3 [INFO] [stderr] Compiling macroquad_macro v0.1.8 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling crc32fast v1.4.2 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling fontdue v0.9.3 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling image v0.24.9 [INFO] [stderr] Compiling macroquad v0.4.14 [INFO] [stderr] Compiling platformer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `cam_y` [INFO] [stdout] --> src/game/mod.rs:224:45 [INFO] [stdout] | [INFO] [stdout] 224 | fn render_background(&self, cam_x: f32, cam_y: f32) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_cam_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen_w` [INFO] [stdout] --> src/game/mod.rs:225:13 [INFO] [stdout] | [INFO] [stdout] 225 | let screen_w = screen_width(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GameConfig` is never constructed [INFO] [stdout] --> src/config.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct GameConfig; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/config.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 6 | impl GameConfig { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 7 | // Player Physics [INFO] [stdout] 8 | pub const PLAYER_MOVE_SPEED: f32 = 200.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | pub const PLAYER_JUMP_FORCE: f32 = -400.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | pub const PLAYER_SIZE: (f32, f32) = (32.0, 32.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 11 | pub const PLAYER_MAX_JUMPS: u32 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | pub const PLAYER_COLOR: Color = BLUE; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub const GRAVITY: f32 = 980.0; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | pub const TERMINAL_VELOCITY: f32 = 500.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub const FRICTION: f32 = 0.8; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub const GROUND_HEIGHT: f32 = 40.0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 21 | pub const PLATFORM_COLOR: Color = GREEN; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 22 | pub const GROUND_COLOR: Color = BROWN; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub const COIN_VALUE: i32 = 10; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 26 | pub const GEM_VALUE: i32 = 50; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 27 | pub const POWERUP_VALUE: i32 = 100; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 28 | pub const COLLECTIBLE_SIZE: (f32, f32) = (16.0, 16.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub const COLLECTIBLE_ANIMATION_SPEED: f32 = 3.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub const DISTANCE_SCORE_MULTIPLIER: f32 = 0.1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub const TIME_SCORE_MULTIPLIER: i32 = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub const CAMERA_SMOOTHING: f32 = 0.1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub const CAMERA_OFFSET_X: f32 = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | pub const CAMERA_OFFSET_Y: f32 = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub const BACKGROUND_COLOR: Color = SKYBLUE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 42 | pub const UI_TEXT_COLOR: Color = WHITE; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 43 | pub const SCORE_TEXT_COLOR: Color = YELLOW; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | pub const DEBUG_TEXT_COLOR: Color = DARKGRAY; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub const CLOUD_PARALLAX_SPEED: f32 = 0.3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub const MOUNTAIN_PARALLAX_SPEED: f32 = 0.1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | pub const TREE_PARALLAX_SPEED: f32 = 0.5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 50 | pub const GRASS_PARALLAX_SPEED: f32 = 0.8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub const DEATH_Y_THRESHOLD: f32 = 100.0; // How far below screen before death [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 54 | pub const WORLD_WIDTH: f32 = 2000.0; // For minimap calculations [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub const INPUT_BUFFER_TIME: f32 = 0.1; // Seconds to buffer jump input [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub const FLOAT_AMPLITUDE: f32 = 3.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 61 | pub const FLOAT_FREQUENCY: f32 = 3.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 62 | pub const SPARKLE_FREQUENCY: f32 = 6.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 63 | pub const GLOW_PULSE_SPEED: f32 = 4.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub const TARGET_FPS: i32 = 60; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 67 | pub const MAX_PARTICLES: usize = 100; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub const UI_MARGIN: f32 = 10.0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 71 | pub const UI_LINE_HEIGHT: f32 = 25.0; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 72 | pub const UI_FONT_SIZE: f32 = 20.0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 73 | pub const UI_LARGE_FONT_SIZE: f32 = 50.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | pub const UI_SMALL_FONT_SIZE: f32 = 16.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub const SHOW_DEBUG_INFO: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | pub const SHOW_VELOCITY_INDICATOR: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | pub const SHOW_COLLISION_BOXES: bool = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 80 | pub const SHOW_GRID: bool = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 81 | pub const GRID_SIZE: f32 = 32.0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub const PALETTE_PRIMARY: Color = Color::new(0.2, 0.4, 1.0, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 85 | pub const PALETTE_SECONDARY: Color = Color::new(1.0, 0.6, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 86 | pub const PALETTE_ACCENT: Color = Color::new(0.8, 0.2, 0.8, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 87 | pub const PALETTE_SUCCESS: Color = Color::new(0.2, 0.8, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 88 | pub const PALETTE_WARNING: Color = Color::new(1.0, 1.0, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | pub const PALETTE_DANGER: Color = Color::new(1.0, 0.2, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub const SCORE_THRESHOLD_BRONZE: i32 = 100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 93 | pub const SCORE_THRESHOLD_SILVER: i32 = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 94 | pub const SCORE_THRESHOLD_GOLD: i32 = 1000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub const MASTER_VOLUME: f32 = 1.0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 98 | pub const SFX_VOLUME: f32 = 0.8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 99 | pub const MUSIC_VOLUME: f32 = 0.6; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn screen_center() -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn ground_y() -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn death_threshold() -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn player_spawn_position() -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn ui_position(line: i32) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn with_alpha(color: Color, alpha: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn lerp_color(a: Color, b: Color, t: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn collectible_color(collectible_type: &str) -> Color { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn platform_color(platform_type: &str) -> Color { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn get_difficulty_multiplier(time_survived: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn format_score(score: i32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn format_time(seconds: f32) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn is_performance_good() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn get_debug_info() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DifficultyPresets` is never constructed [INFO] [stdout] --> src/config.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DifficultyPresets; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `easy`, `normal`, and `hard` are never used [INFO] [stdout] --> src/config.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl DifficultyPresets { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 207 | pub fn easy() -> DifficultyConfig { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub fn normal() -> DifficultyConfig { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn hard() -> DifficultyConfig { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DifficultyConfig` is never constructed [INFO] [stdout] --> src/config.rs:236:12 [INFO] [stdout] | [INFO] [stdout] 236 | pub struct DifficultyConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EnvironmentPresets` is never constructed [INFO] [stdout] --> src/config.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | pub struct EnvironmentPresets; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `day`, `sunset`, and `night` are never used [INFO] [stdout] --> src/config.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 246 | impl EnvironmentPresets { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] 247 | pub fn day() -> EnvironmentConfig { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn sunset() -> EnvironmentConfig { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub fn night() -> EnvironmentConfig { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EnvironmentConfig` is never constructed [INFO] [stdout] --> src/config.rs:279:12 [INFO] [stdout] | [INFO] [stdout] 279 | pub struct EnvironmentConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `position` and `size` are never used [INFO] [stdout] --> src/entities/mod.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Entity { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 13 | fn position(&self) -> Vec2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 14 | fn size(&self) -> Vec2; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mass` is never read [INFO] [stdout] --> src/entities/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct PhysicsBody { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub mass: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PhysicsBody` 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: methods `is_collected` and `get_bounds` are never used [INFO] [stdout] --> src/entities/collectible.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Collectible { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn is_collected(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn get_bounds(&self) -> (f32, f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Breakable` and `Moving` are never constructed [INFO] [stdout] --> src/entities/platform.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum PlatformType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Breakable, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | Moving, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlatformType` 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 items `new_ground`, `new_breakable`, `overlaps_with`, and `is_landing_on` are never used [INFO] [stdout] --> src/entities/platform.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Platform { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn new_ground(x: f32, y: f32, width: f32, height: f32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn new_breakable(x: f32, y: f32, width: f32, height: f32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn overlaps_with(&self, other: &PhysicsBody) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn is_landing_on(&self, entity_body: &PhysicsBody, entity_prev_y: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GraphicsUtils` is never constructed [INFO] [stdout] --> src/graphics/mod.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct GraphicsUtils; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/graphics/mod.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl GraphicsUtils { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 6 | /// Draw a filled rectangle with a border [INFO] [stdout] 7 | pub fn draw_rectangle_with_border( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn draw_gradient_rectangle( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn draw_circle_with_border( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn draw_text_with_shadow( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn draw_text_centered(text: &str, x: f32, y: f32, font_size: f32, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn draw_progress_bar( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn draw_button( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn is_mouse_over_rect(x: f32, y: f32, width: f32, height: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn draw_animated_rectangle( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn draw_debug_grid(camera_x: f32, camera_y: f32, grid_size: f32, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn draw_particles(center: Vec2, count: i32, radius: f32, color: Color, time_offset: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn draw_health_bar( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn draw_minimap( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_alpha` is never used [INFO] [stdout] --> src/graphics/mod.rs:305:12 [INFO] [stdout] | [INFO] [stdout] 305 | pub fn with_alpha(color: Color, alpha: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp_color` is never used [INFO] [stdout] --> src/graphics/mod.rs:310:12 [INFO] [stdout] | [INFO] [stdout] 310 | pub fn lerp_color(a: Color, b: Color, t: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rainbow_color` is never used [INFO] [stdout] --> src/graphics/mod.rs:321:12 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn rainbow_color(time: f32, speed: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hsv_to_rgb` is never used [INFO] [stdout] --> src/graphics/mod.rs:327:12 [INFO] [stdout] | [INFO] [stdout] 327 | pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLATFORM_GREEN` is never used [INFO] [stdout] --> src/graphics/mod.rs:350:15 [INFO] [stdout] | [INFO] [stdout] 350 | pub const PLATFORM_GREEN: Color = Color::new(0.2, 0.8, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLATFORM_BROWN` is never used [INFO] [stdout] --> src/graphics/mod.rs:351:15 [INFO] [stdout] | [INFO] [stdout] 351 | pub const PLATFORM_BROWN: Color = Color::new(0.6, 0.4, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLAYER_BLUE` is never used [INFO] [stdout] --> src/graphics/mod.rs:352:15 [INFO] [stdout] | [INFO] [stdout] 352 | pub const PLAYER_BLUE: Color = Color::new(0.2, 0.4, 1.0, 1.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DANGER_RED` is never used [INFO] [stdout] --> src/graphics/mod.rs:353:15 [INFO] [stdout] | [INFO] [stdout] 353 | pub const DANGER_RED: Color = Color::new(1.0, 0.2, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COLLECTIBLE_YELLOW` is never used [INFO] [stdout] --> src/graphics/mod.rs:354:15 [INFO] [stdout] | [INFO] [stdout] 354 | pub const COLLECTIBLE_YELLOW: Color = Color::new(1.0, 1.0, 0.2, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `UI_BACKGROUND` is never used [INFO] [stdout] --> src/graphics/mod.rs:355:15 [INFO] [stdout] | [INFO] [stdout] 355 | pub const UI_BACKGROUND: Color = Color::new(0.0, 0.0, 0.0, 0.7); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `UI_BORDER` is never used [INFO] [stdout] --> src/graphics/mod.rs:356:15 [INFO] [stdout] | [INFO] [stdout] 356 | pub const UI_BORDER: Color = Color::new(0.8, 0.8, 0.8, 1.0); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/input/mod.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl InputHandler { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn is_key_released(&self, key: KeyCode) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_horizontal_input(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn get_vertical_input(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn is_jump_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn is_action_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn is_pause_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn is_reset_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn get_pressed_keys(&self) -> &Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn any_key_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn any_key_just_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_moving` is never used [INFO] [stdout] --> src/input/mod.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn is_moving(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_movement_vector` is never used [INFO] [stdout] --> src/input/mod.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub fn get_movement_vector(input: &InputHandler) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wants_to_move_left` is never used [INFO] [stdout] --> src/input/mod.rs:168:12 [INFO] [stdout] | [INFO] [stdout] 168 | pub fn wants_to_move_left(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wants_to_move_right` is never used [INFO] [stdout] --> src/input/mod.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn wants_to_move_right(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `just_started_moving_left` is never used [INFO] [stdout] --> src/input/mod.rs:178:12 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn just_started_moving_left(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `just_started_moving_right` is never used [INFO] [stdout] --> src/input/mod.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn just_started_moving_right(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `just_stopped_moving_horizontal` is never used [INFO] [stdout] --> src/input/mod.rs:190:12 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn just_stopped_moving_horizontal(input: &InputHandler) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_bounds` is never used [INFO] [stdout] --> src/physics/mod.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Physics { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn check_bounds(&self, player: &mut Player) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CollisionSide` is never used [INFO] [stdout] --> src/physics/collision.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum CollisionSide { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CollisionInfo` is never constructed [INFO] [stdout] --> src/physics/collision.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct CollisionInfo { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CollisionDetector` is never constructed [INFO] [stdout] --> src/physics/collision.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct CollisionDetector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/physics/collision.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl CollisionDetector { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 23 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn aabb_overlap(rect1: (f32, f32, f32, f32), rect2: (f32, f32, f32, f32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_collision_info(body1: &PhysicsBody, body2: &PhysicsBody) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn point_in_rect(point: Vec2, rect: (f32, f32, f32, f32)) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn predict_collision( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn sweep_test( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn is_on_platform(entity: &PhysicsBody, platform: &Platform, tolerance: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn distance_between(body1: &PhysicsBody, body2: &PhysicsBody) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn within_distance(body1: &PhysicsBody, body2: &PhysicsBody, distance: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CollisionResolver` is never constructed [INFO] [stdout] --> src/physics/collision.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct CollisionResolver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `separate_bodies`, `apply_bounce`, and `apply_friction` are never used [INFO] [stdout] --> src/physics/collision.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 160 | impl CollisionResolver { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 161 | /// Resolve collision by separating two bodies [INFO] [stdout] 162 | pub fn separate_bodies( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn apply_bounce(body: &mut PhysicsBody, collision: &CollisionInfo, restitution: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn apply_friction(body: &mut PhysicsBody, friction_coefficient: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `rust-lld` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: "rust-lld" "-flavor" "wasm" "--export" "__main_void" "--export" "CONTEXT" "--export" "allocate_vec_u8" "--export" "crate_version" "--export" "file_loaded" "--export" "focus" "--export" "frame" "--export" "key_down" "--export" "key_press" "--export" "key_up" "--export" "mouse_down" "--export" "mouse_move" "--export" "mouse_up" "--export" "mouse_wheel" "--export" "on_clipboard_paste" "--export" "on_file_dropped" "--export" "on_files_dropped_finish" "--export" "on_files_dropped_start" "--export" "raw_mouse_move" "--export" "resize" "--export" "touch" "-z" "stack-size=1048576" "--stack-first" "--no-demangle" "/lib/rustlib/wasm32-wasip1/lib/self-contained/crt1-command.o" "<2 object files omitted>" "/lib/rustlib/wasm32-wasip1/lib/libpanic_abort-*.rlib" "/opt/rustwide/target/wasm32-wasip1/debug/deps/{libmacroquad-e10a10230a17ca79,libfontdue-376a0966aeaef339,libhashbrown-662abfc39cbd340d,libfoldhash-6e98285c7e677e53,libequivalent-e75e9a7d273f0189,liballocator_api2-8e8748a307852ab5,libttf_parser-f7891d02a2dd8704,libimage-e9a1de7315972719,libbytemuck-ac08047533836a3e,libcolor_quant-8e07a515e6ff48c0,libbyteorder-529cc76400af54b3,libpng-8a1fec55a765f34c,libbitflags-15e3d67e03629ffa,libflate2-f85e5fe358135877,libminiz_oxide-add2caca990dcbb8,libfdeflate-1973eda695894699,libsimd_adler32-f60c9d1329d503cc,libcrc32fast-14fd7ee403b1bea0,libcfg_if-beec54d71ff48acf,libnum_traits-3a8e83649fd78d15,libquad_rand-c335779a0f85c006,libglam-1547a7719eb4aa0f,libminiquad-ee8216464762dde6}.rlib" "/lib/rustlib/wasm32-wasip1/lib/{libstd-*,libwasi-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*}.rlib" "-l" "c" "/lib/rustlib/wasm32-wasip1/lib/{librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-L" "/lib/rustlib/wasm32-wasip1/lib/self-contained" "-o" "/opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.wasm" "--gc-sections" "-O0" [INFO] [stdout] = note: some arguments are omitted. use `--verbose` to show all linker arguments [INFO] [stdout] = note: rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: init_webgl [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: setup_canvas_size [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: canvas_width [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: canvas_height [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: dpi_scale [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: run_animation_loop [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/platformer-fe71a975ca43c9b9.platformer.1f0774d364e52fc4-cgu.0.rcgu.o: undefined symbol: console_log [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libmacroquad-e10a10230a17ca79.rlib(macroquad-e10a10230a17ca79.macroquad.949988db78511930-cgu.11.rcgu.o): undefined symbol: glFlush [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libmacroquad-e10a10230a17ca79.rlib(macroquad-e10a10230a17ca79.macroquad.949988db78511930-cgu.11.rcgu.o): undefined symbol: glFinish [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libmacroquad-e10a10230a17ca79.rlib(macroquad-e10a10230a17ca79.macroquad.949988db78511930-cgu.12.rcgu.o): undefined symbol: glBindTexture [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libmacroquad-e10a10230a17ca79.rlib(macroquad-e10a10230a17ca79.macroquad.949988db78511930-cgu.12.rcgu.o): undefined symbol: glCopyTexImage2D [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: glBindBuffer [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: glBindBuffer [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: glActiveTexture [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: glBindTexture [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: glDisableVertexAttribArray [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: console_error [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: console_warn [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: console_info [INFO] [stdout] rust-lld: error: /opt/rustwide/target/wasm32-wasip1/debug/deps/libminiquad-ee8216464762dde6.rlib(miniquad-ee8216464762dde6.miniquad.a46dca1772deceb0-cgu.3.rcgu.o): undefined symbol: console_debug [INFO] [stdout] rust-lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `platformer` (bin "platformer") due to 1 previous error; 43 warnings emitted [INFO] running `Command { std: "docker" "inspect" "8c94ac5f8a0a9fb17c990c6957fb6e959c0a71deaafd81553833b72cd9ce94b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c94ac5f8a0a9fb17c990c6957fb6e959c0a71deaafd81553833b72cd9ce94b5", kill_on_drop: false }` [INFO] [stdout] 8c94ac5f8a0a9fb17c990c6957fb6e959c0a71deaafd81553833b72cd9ce94b5