[INFO] cloning repository https://github.com/CrystalSplitter/rust_wasm_canvas
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CrystalSplitter/rust_wasm_canvas" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrystalSplitter%2Frust_wasm_canvas", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrystalSplitter%2Frust_wasm_canvas'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 03ac2874d2c4b2c06e0418ab966884cd1c21dbda
[INFO] testing CrystalSplitter/rust_wasm_canvas against 1.85.0 for beta-1.86-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrystalSplitter%2Frust_wasm_canvas" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/CrystalSplitter/rust_wasm_canvas on toolchain 1.85.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/CrystalSplitter/rust_wasm_canvas
[INFO] finished tweaking git repo https://github.com/CrystalSplitter/rust_wasm_canvas
[INFO] tweaked toml for git repo https://github.com/CrystalSplitter/rust_wasm_canvas written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/CrystalSplitter/rust_wasm_canvas 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.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syn v2.0.38
[INFO] [stderr]   Downloaded proc-macro2 v1.0.67
[INFO] [stderr]   Downloaded bumpalo v3.6.1
[INFO] [stderr]   Downloaded serde v1.0.125
[INFO] [stderr]   Downloaded serde_json v1.0.64
[INFO] [stderr]   Downloaded log v0.4.14
[INFO] [stderr]   Downloaded quote v1.0.33
[INFO] [stderr]   Downloaded rawpointer v0.2.1
[INFO] [stderr]   Downloaded arrayvec v0.5.2
[INFO] [stderr]   Downloaded futures-core v0.3.15
[INFO] [stderr]   Downloaded dyn-clone v1.0.4
[INFO] [stderr]   Downloaded pin-project-lite v0.2.7
[INFO] [stderr]   Downloaded proc-macro-hack v0.5.19
[INFO] [stderr]   Downloaded futures-util v0.3.15
[INFO] [stderr]   Downloaded version_check v0.9.3
[INFO] [stderr]   Downloaded lexical-core v0.7.6
[INFO] [stderr]   Downloaded web-sys v0.3.50
[INFO] [stderr]   Downloaded serde-wasm-bindgen v0.1.3
[INFO] [stderr]   Downloaded simba v0.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.23
[INFO] [stderr]   Downloaded futures-executor v0.3.15
[INFO] [stderr]   Downloaded futures-channel v0.3.15
[INFO] [stderr]   Downloaded futures-sink v0.3.15
[INFO] [stderr]   Downloaded futures-task v0.3.15
[INFO] [stderr]   Downloaded memchr v2.4.0
[INFO] [stderr]   Downloaded proc-macro-nested v0.1.7
[INFO] [stderr]   Downloaded futures v0.3.15
[INFO] [stderr]   Downloaded itertools v0.10.0
[INFO] [stderr]   Downloaded generic-array v0.14.4
[INFO] [stderr]   Downloaded matrixmultiply v0.3.1
[INFO] [stderr]   Downloaded approx v0.4.0
[INFO] [stderr]   Downloaded num-complex v0.3.1
[INFO] [stderr]   Downloaded paste v1.0.5
[INFO] [stderr]   Downloaded nalgebra v0.25.4
[INFO] [stderr]   Downloaded typenum v1.13.0
[INFO] [stderr]   Downloaded autocfg v1.0.1
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.10
[INFO] [stderr]   Downloaded rand_chacha v0.3.0
[INFO] [stderr]   Downloaded rand_core v0.6.2
[INFO] [stderr]   Downloaded slab v0.4.3
[INFO] [stderr]   Downloaded typed-builder v0.9.0
[INFO] [stderr]   Downloaded bitflags v1.2.1
[INFO] [stderr]   Downloaded lexical v5.2.2
[INFO] [stderr]   Downloaded wavefront_obj v10.0.0
[INFO] [stderr]   Downloaded itoa v0.4.7
[INFO] [stderr]   Downloaded syn v1.0.71
[INFO] [stderr]   Downloaded serde_derive v1.0.125
[INFO] [stderr]   Downloaded futures-io v0.3.15
[INFO] [stderr]   Downloaded futures-macro v0.3.15
[INFO] [stderr]   Downloaded num-rational v0.3.2
[INFO] [stderr]   Downloaded num-complex v0.4.4
[INFO] [stderr]   Downloaded num-iter v0.1.43
[INFO] [stderr]   Downloaded num-rational v0.4.1
[INFO] [stderr]   Downloaded num v0.4.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 15c65841350e2eabafd4f0db7da562cbc24fa00ce036e31e196e6b84acc55038
[INFO] running `Command { std: "docker" "start" "-a" "15c65841350e2eabafd4f0db7da562cbc24fa00ce036e31e196e6b84acc55038", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "15c65841350e2eabafd4f0db7da562cbc24fa00ce036e31e196e6b84acc55038", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "15c65841350e2eabafd4f0db7da562cbc24fa00ce036e31e196e6b84acc55038", kill_on_drop: false }`
[INFO] [stdout] 15c65841350e2eabafd4f0db7da562cbc24fa00ce036e31e196e6b84acc55038
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a78e62fc8736ae8bfaaa1d9b2d4332cd17eb39d5909015e534cd31cdd2c37084
[INFO] running `Command { std: "docker" "start" "-a" "a78e62fc8736ae8bfaaa1d9b2d4332cd17eb39d5909015e534cd31cdd2c37084", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.67
[INFO] [stderr]    Compiling syn v1.0.71
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling serde_derive v1.0.125
[INFO] [stderr]    Compiling serde v1.0.125
[INFO] [stderr]    Compiling bumpalo v3.6.1
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]    Compiling wasm-bindgen v0.2.87
[INFO] [stderr]    Compiling itoa v0.4.7
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling futures-core v0.3.15
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling futures-macro v0.3.15
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling futures-task v0.3.15
[INFO] [stderr]    Compiling futures-channel v0.3.15
[INFO] [stderr]    Compiling futures-util v0.3.15
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling futures-sink v0.3.15
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling slab v0.4.3
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling futures-io v0.3.15
[INFO] [stderr]    Compiling pin-project-lite v0.2.7
[INFO] [stderr]    Compiling paste v1.0.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.10
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling itertools v0.10.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.1
[INFO] [stderr]    Compiling dyn-clone v1.0.4
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling getrandom v0.2.10
[INFO] [stderr]    Compiling rand_core v0.6.2
[INFO] [stderr]    Compiling rand_chacha v0.3.0
[INFO] [stderr]    Compiling approx v0.4.0
[INFO] [stderr]    Compiling num-complex v0.3.1
[INFO] [stderr]    Compiling num-complex v0.4.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling lexical v5.2.2
[INFO] [stderr]    Compiling wavefront_obj v10.0.0
[INFO] [stderr]    Compiling simba v0.4.0
[INFO] [stderr]    Compiling num v0.4.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.87
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.87
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.87
[INFO] [stderr]    Compiling typed-builder v0.9.0
[INFO] [stderr]    Compiling futures-executor v0.3.15
[INFO] [stderr]    Compiling futures v0.3.15
[INFO] [stderr]    Compiling nalgebra v0.25.4
[INFO] [stderr]    Compiling js-sys v0.3.64
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.6
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.23
[INFO] [stderr]    Compiling web-sys v0.3.50
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.1.3
[INFO] [stderr]    Compiling js_canvas v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/js_bindings.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/mesh/wavefront_obj.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/spin.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex, RwLock};
[INFO] [stdout]   |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Document`
[INFO] [stdout]  --> src/spin.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use web_sys::{Document, HtmlCanvasElement, WebGl2RenderingContext as Gl, WebGlProgram};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry`
[INFO] [stdout]   --> src/spin.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::geometry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mesh`
[INFO] [stdout]   --> src/spin.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::mesh;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]   --> src/spin.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transform.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/game/blocks.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::maths_utils`
[INFO] [stdout]  --> src/game/blocks.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::maths_utils;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]  --> src/game/cottage_scene.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferInfo`, `BufferSettings`, `Bufferable`, `ProgramData`, `RenderItem`, and `Renderer`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |         BufferInfo, BufferSettings, Bufferable, ProgramData, RenderItem, Renderer,
[INFO] [stdout]   |         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::WebGl2RenderingContext as Gl`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use web_sys::WebGl2RenderingContext as Gl;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `Test`
[INFO] [stdout]    --> src/world_object.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | #[cfg(Test)]
[INFO] [stdout]     |       ^^^^ help: there is a config with a similar name: `test`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(Test)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(Test)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]  --> src/world_object.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::{Rc, Weak};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc`
[INFO] [stdout]  --> src/world_state.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wfc`
[INFO] [stdout]   --> src/world_state.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::util::{Rfc, Wfc};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u_location_names`
[INFO] [stdout]   --> src/lib.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     u_location_names: JsValue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_location_names`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preloaded_game_data`
[INFO] [stdout]   --> src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     preloaded_game_data: PreloadedGameData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preloaded_game_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/spin.rs:288:28
[INFO] [stdout]     |
[INFO] [stdout] 288 |                   mesh: Some(MeshComponent {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 289 | |                     data: panic!("Not implemented"), //mesh::wavefront_obj::into_vertex_vec("ERROR").expect("Could not convert "),
[INFO] [stdout]     | |                           ------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 | |                 }),
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/game/cottage_scene.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |   ...                   render: Some(RenderComponent {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 31 | | ...                       renderer,
[INFO] [stdout] 32 | | ...                       material: Material {
[INFO] [stdout] 33 | | ...                           color: (0.5, 0.5, 0.5, 1.0),
[INFO] [stdout] 34 | | ...                       },
[INFO] [stdout] 35 | | ...                       gl_program_data: panic!(),
[INFO] [stdout]    | |                                            -------- any code following this expression is unreachable
[INFO] [stdout] 36 | | ...                   }),
[INFO] [stdout]    | |_______________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/rendering.rs:441:39
[INFO] [stdout]     |
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/rigidbody.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/spin.rs:239:33
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn get_mesh_data(&self, idx: usize) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_obj`
[INFO] [stdout]    --> src/spin.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let new_obj = WorldObject3DInit {
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rot`
[INFO] [stdout]   --> src/transform.rs:58:36
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn set_rotation(&mut self, rot: Vector4<f32>) -> &mut Self {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VertArray` is never used
[INFO] [stdout]  --> src/geometry.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type VertArray = js_sys::Float32Array;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_square` is never used
[INFO] [stdout]  --> src/geometry.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn new_square(scale: f32) -> Vec<f32> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3d` is never constructed
[INFO] [stdout]   --> src/geometry.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Point3d(f32, f32, f32);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_cube` is never used
[INFO] [stdout]   --> src/geometry.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn new_cube(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `f_3d` is never used
[INFO] [stdout]   --> src/geometry.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn f_3d(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mouse_x` and `get_mouse_y` are never used
[INFO] [stdout]  --> src/inputs.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Input {
[INFO] [stdout]   |           ----- methods in this trait
[INFO] [stdout] 6 |     fn get_mouse_x(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 7 |     fn get_mouse_y(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log` is never used
[INFO] [stdout]   --> src/js_bindings.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn log(s: &str) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]   --> src/maths_utils.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn lerp<T: Float + NumOps>(from: T, to: T, t: T) -> T {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mesh_string` is never used
[INFO] [stdout]   --> src/mesh/wavefront_obj.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn mesh_string() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vaos` is never read
[INFO] [stdout]   --> src/rendering.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct ProgramData {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     vaos: BTreeMap<String, GlVao>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgramData` 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: field `face_normal_vao` is never read
[INFO] [stdout]    --> src/rendering.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct RenderItem {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 236 |     face_normal_vao: Option<GlVao>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `default_color` is never read
[INFO] [stdout]    --> src/rendering.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct RenderLineBuilder<'a, RendererT: ?Sized> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 298 |     default_color: (f32, f32, f32, f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_line`, `enabled`, and `default_color` are never used
[INFO] [stdout]    --> src/rendering.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 302 | impl<'a, RendererT: Renderer + ?Sized> RenderLineBuilder<'a, RendererT> {
[INFO] [stdout]     | ----------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn add_line(self, line: (Vector3<f32>, Vector3<f32>)) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     build_setter!(enabled, bool);
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     build_setter_defaulted!(default_color, (f32, f32, f32, f32));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `build_setter` which comes from the expansion of the macro `build_setter_defaulted` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug_draw_face_normals` is never used
[INFO] [stdout]    --> src/rendering.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl RenderItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:493:29
[INFO] [stdout]     |
[INFO] [stdout] 493 |     FailedToGetUniformLoc { info: String },
[INFO] [stdout]     |     ---------------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:494:20
[INFO] [stdout]     |
[INFO] [stdout] 494 |     NoBufferSize { info: String },
[INFO] [stdout]     |     ------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:495:18
[INFO] [stdout]     |
[INFO] [stdout] 495 |     FailedDraw { info: String },
[INFO] [stdout]     |     ----------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tmp_mat_b` is never read
[INFO] [stdout]    --> src/rendering.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 499 | pub struct RendererOrtho3D {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 507 |     tmp_mat_b: RefCell<na::Matrix4<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RendererOrtho3D` 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: struct `Rigidbody3D` is never constructed
[INFO] [stdout]  --> src/rigidbody.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Rigidbody3D {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `apply_force`, and `apply_angular_force` are never used
[INFO] [stdout]   --> src/rigidbody.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Rigidbody3D {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn apply_force(&mut self, f: Vector3<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_rand_pos` is never used
[INFO] [stdout]    --> src/spin.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn set_rand_pos(tf: &mut Transform) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_tf` is never used
[INFO] [stdout]    --> src/spin.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn spin_tf(tf: &mut Transform, delta: EulerAngles3D<f32>, delta_time: f32) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TorusGen` is never constructed
[INFO] [stdout]    --> src/spin.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct TorusGen {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/spin.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl TorusGen {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 267 |     pub fn new(program_data: ProgramData) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseFollower` is never constructed
[INFO] [stdout]    --> src/spin.rs:316:8
[INFO] [stdout]     |
[INFO] [stdout] 316 | struct MouseFollower {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color` is never used
[INFO] [stdout]    --> src/spin.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn get_color() -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Wfc` is never used
[INFO] [stdout]  --> src/util.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Wfc<T> = Weak<RefCell<T>>;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MovingBlockBehavior` is never constructed
[INFO] [stdout]   --> src/game/blocks.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct MovingBlockBehavior {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CottageMaker` is never constructed
[INFO] [stdout]   --> src/game/cottage_scene.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CottageMaker {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scripts` and `parent_id` are never read
[INFO] [stdout]   --> src/world_object.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct WorldObject3DInit {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub scripts: Vec<Rc<dyn Steppable<WorldState>>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub children_ids: Vec<WorldObjectId>,
[INFO] [stdout] 37 |     pub parent_id: Option<WorldObjectId>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rev` is never constructed
[INFO] [stdout]   --> src/world_state.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RendQueueType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 16 |     Fwd,
[INFO] [stdout] 17 |     Rev,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     game_loop.load_in();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let _ = game_loop.load_in();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.67s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.87
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 10`
[INFO] running `Command { std: "docker" "inspect" "a78e62fc8736ae8bfaaa1d9b2d4332cd17eb39d5909015e534cd31cdd2c37084", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a78e62fc8736ae8bfaaa1d9b2d4332cd17eb39d5909015e534cd31cdd2c37084", kill_on_drop: false }`
[INFO] [stdout] a78e62fc8736ae8bfaaa1d9b2d4332cd17eb39d5909015e534cd31cdd2c37084
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e35d5489eca87b3a53afcf43252b831f1f1699e57f6554b39fc1421a4ccd24dd
[INFO] running `Command { std: "docker" "start" "-a" "e35d5489eca87b3a53afcf43252b831f1f1699e57f6554b39fc1421a4ccd24dd", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/js_bindings.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/mesh/wavefront_obj.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/spin.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex, RwLock};
[INFO] [stdout]   |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Document`
[INFO] [stdout]  --> src/spin.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use web_sys::{Document, HtmlCanvasElement, WebGl2RenderingContext as Gl, WebGlProgram};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry`
[INFO] [stdout]   --> src/spin.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::geometry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mesh`
[INFO] [stdout]   --> src/spin.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::mesh;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]   --> src/spin.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transform.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/game/blocks.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::maths_utils`
[INFO] [stdout]  --> src/game/blocks.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::maths_utils;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]  --> src/game/cottage_scene.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferInfo`, `BufferSettings`, `Bufferable`, `ProgramData`, `RenderItem`, and `Renderer`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |         BufferInfo, BufferSettings, Bufferable, ProgramData, RenderItem, Renderer,
[INFO] [stdout]   |         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::WebGl2RenderingContext as Gl`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use web_sys::WebGl2RenderingContext as Gl;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `Test`
[INFO] [stdout]    --> src/world_object.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | #[cfg(Test)]
[INFO] [stdout]     |       ^^^^ help: there is a config with a similar name: `test`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(Test)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(Test)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]  --> src/world_object.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::{Rc, Weak};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc`
[INFO] [stdout]  --> src/world_state.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wfc`
[INFO] [stdout]   --> src/world_state.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::util::{Rfc, Wfc};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u_location_names`
[INFO] [stdout]   --> src/lib.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     u_location_names: JsValue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_location_names`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preloaded_game_data`
[INFO] [stdout]   --> src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     preloaded_game_data: PreloadedGameData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preloaded_game_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/spin.rs:288:28
[INFO] [stdout]     |
[INFO] [stdout] 288 |                   mesh: Some(MeshComponent {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 289 | |                     data: panic!("Not implemented"), //mesh::wavefront_obj::into_vertex_vec("ERROR").expect("Could not convert "),
[INFO] [stdout]     | |                           ------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 | |                 }),
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/game/cottage_scene.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |   ...                   render: Some(RenderComponent {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 31 | | ...                       renderer,
[INFO] [stdout] 32 | | ...                       material: Material {
[INFO] [stdout] 33 | | ...                           color: (0.5, 0.5, 0.5, 1.0),
[INFO] [stdout] 34 | | ...                       },
[INFO] [stdout] 35 | | ...                       gl_program_data: panic!(),
[INFO] [stdout]    | |                                            -------- any code following this expression is unreachable
[INFO] [stdout] 36 | | ...                   }),
[INFO] [stdout]    | |_______________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/rendering.rs:441:39
[INFO] [stdout]     |
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/rigidbody.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/spin.rs:239:33
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn get_mesh_data(&self, idx: usize) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_obj`
[INFO] [stdout]    --> src/spin.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let new_obj = WorldObject3DInit {
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rot`
[INFO] [stdout]   --> src/transform.rs:58:36
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn set_rotation(&mut self, rot: Vector4<f32>) -> &mut Self {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VertArray` is never used
[INFO] [stdout]  --> src/geometry.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type VertArray = js_sys::Float32Array;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_square` is never used
[INFO] [stdout]  --> src/geometry.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn new_square(scale: f32) -> Vec<f32> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3d` is never constructed
[INFO] [stdout]   --> src/geometry.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Point3d(f32, f32, f32);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_cube` is never used
[INFO] [stdout]   --> src/geometry.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn new_cube(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `f_3d` is never used
[INFO] [stdout]   --> src/geometry.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn f_3d(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mouse_x` and `get_mouse_y` are never used
[INFO] [stdout]  --> src/inputs.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Input {
[INFO] [stdout]   |           ----- methods in this trait
[INFO] [stdout] 6 |     fn get_mouse_x(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 7 |     fn get_mouse_y(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log` is never used
[INFO] [stdout]   --> src/js_bindings.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn log(s: &str) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]   --> src/maths_utils.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn lerp<T: Float + NumOps>(from: T, to: T, t: T) -> T {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mesh_string` is never used
[INFO] [stdout]   --> src/mesh/wavefront_obj.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn mesh_string() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling js_canvas v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `vaos` is never read
[INFO] [stdout]   --> src/rendering.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct ProgramData {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     vaos: BTreeMap<String, GlVao>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgramData` 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: field `face_normal_vao` is never read
[INFO] [stdout]    --> src/rendering.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct RenderItem {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 236 |     face_normal_vao: Option<GlVao>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `default_color` is never read
[INFO] [stdout]    --> src/rendering.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct RenderLineBuilder<'a, RendererT: ?Sized> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 298 |     default_color: (f32, f32, f32, f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_line`, `enabled`, and `default_color` are never used
[INFO] [stdout]    --> src/rendering.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 302 | impl<'a, RendererT: Renderer + ?Sized> RenderLineBuilder<'a, RendererT> {
[INFO] [stdout]     | ----------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn add_line(self, line: (Vector3<f32>, Vector3<f32>)) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     build_setter!(enabled, bool);
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     build_setter_defaulted!(default_color, (f32, f32, f32, f32));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `build_setter` which comes from the expansion of the macro `build_setter_defaulted` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug_draw_face_normals` is never used
[INFO] [stdout]    --> src/rendering.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl RenderItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:493:29
[INFO] [stdout]     |
[INFO] [stdout] 493 |     FailedToGetUniformLoc { info: String },
[INFO] [stdout]     |     ---------------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:494:20
[INFO] [stdout]     |
[INFO] [stdout] 494 |     NoBufferSize { info: String },
[INFO] [stdout]     |     ------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:495:18
[INFO] [stdout]     |
[INFO] [stdout] 495 |     FailedDraw { info: String },
[INFO] [stdout]     |     ----------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tmp_mat_b` is never read
[INFO] [stdout]    --> src/rendering.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 499 | pub struct RendererOrtho3D {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 507 |     tmp_mat_b: RefCell<na::Matrix4<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RendererOrtho3D` 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: struct `Rigidbody3D` is never constructed
[INFO] [stdout]  --> src/rigidbody.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Rigidbody3D {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `apply_force`, and `apply_angular_force` are never used
[INFO] [stdout]   --> src/rigidbody.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Rigidbody3D {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn apply_force(&mut self, f: Vector3<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_rand_pos` is never used
[INFO] [stdout]    --> src/spin.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn set_rand_pos(tf: &mut Transform) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_tf` is never used
[INFO] [stdout]    --> src/spin.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn spin_tf(tf: &mut Transform, delta: EulerAngles3D<f32>, delta_time: f32) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TorusGen` is never constructed
[INFO] [stdout]    --> src/spin.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct TorusGen {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/spin.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl TorusGen {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 267 |     pub fn new(program_data: ProgramData) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseFollower` is never constructed
[INFO] [stdout]    --> src/spin.rs:316:8
[INFO] [stdout]     |
[INFO] [stdout] 316 | struct MouseFollower {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color` is never used
[INFO] [stdout]    --> src/spin.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn get_color() -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Wfc` is never used
[INFO] [stdout]  --> src/util.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Wfc<T> = Weak<RefCell<T>>;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MovingBlockBehavior` is never constructed
[INFO] [stdout]   --> src/game/blocks.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct MovingBlockBehavior {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CottageMaker` is never constructed
[INFO] [stdout]   --> src/game/cottage_scene.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CottageMaker {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scripts` and `parent_id` are never read
[INFO] [stdout]   --> src/world_object.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct WorldObject3DInit {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub scripts: Vec<Rc<dyn Steppable<WorldState>>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub children_ids: Vec<WorldObjectId>,
[INFO] [stdout] 37 |     pub parent_id: Option<WorldObjectId>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rev` is never constructed
[INFO] [stdout]   --> src/world_state.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RendQueueType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 16 |     Fwd,
[INFO] [stdout] 17 |     Rev,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     game_loop.load_in();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let _ = game_loop.load_in();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/js_bindings.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/mesh/wavefront_obj.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/spin.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex, RwLock};
[INFO] [stdout]   |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Document`
[INFO] [stdout]  --> src/spin.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use web_sys::{Document, HtmlCanvasElement, WebGl2RenderingContext as Gl, WebGlProgram};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry`
[INFO] [stdout]   --> src/spin.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::geometry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mesh`
[INFO] [stdout]   --> src/spin.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::mesh;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]   --> src/spin.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transform.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/game/blocks.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::maths_utils`
[INFO] [stdout]  --> src/game/blocks.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::maths_utils;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldObject3D`
[INFO] [stdout]  --> src/game/cottage_scene.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferInfo`, `BufferSettings`, `Bufferable`, `ProgramData`, `RenderItem`, and `Renderer`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |         BufferInfo, BufferSettings, Bufferable, ProgramData, RenderItem, Renderer,
[INFO] [stdout]   |         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::WebGl2RenderingContext as Gl`
[INFO] [stdout]  --> src/shader_config/vertex_color_3d.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use web_sys::WebGl2RenderingContext as Gl;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `Test`
[INFO] [stdout]    --> src/world_object.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | #[cfg(Test)]
[INFO] [stdout]     |       ^^^^ help: there is a config with a similar name: `test`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(Test)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(Test)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]  --> src/world_object.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::{Rc, Weak};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc`
[INFO] [stdout]  --> src/world_state.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wfc`
[INFO] [stdout]   --> src/world_state.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::util::{Rfc, Wfc};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u_location_names`
[INFO] [stdout]   --> src/lib.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     u_location_names: JsValue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_location_names`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preloaded_game_data`
[INFO] [stdout]   --> src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     preloaded_game_data: PreloadedGameData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preloaded_game_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/spin.rs:288:28
[INFO] [stdout]     |
[INFO] [stdout] 288 |                   mesh: Some(MeshComponent {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 289 | |                     data: panic!("Not implemented"), //mesh::wavefront_obj::into_vertex_vec("ERROR").expect("Could not convert "),
[INFO] [stdout]     | |                           ------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 | |                 }),
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/game/cottage_scene.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |   ...                   render: Some(RenderComponent {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 31 | | ...                       renderer,
[INFO] [stdout] 32 | | ...                       material: Material {
[INFO] [stdout] 33 | | ...                           color: (0.5, 0.5, 0.5, 1.0),
[INFO] [stdout] 34 | | ...                       },
[INFO] [stdout] 35 | | ...                       gl_program_data: panic!(),
[INFO] [stdout]    | |                                            -------- any code following this expression is unreachable
[INFO] [stdout] 36 | | ...                   }),
[INFO] [stdout]    | |_______________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/rendering.rs:441:39
[INFO] [stdout]     |
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/rigidbody.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/spin.rs:239:33
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn get_mesh_data(&self, idx: usize) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_obj`
[INFO] [stdout]    --> src/spin.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let new_obj = WorldObject3DInit {
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rot`
[INFO] [stdout]   --> src/transform.rs:58:36
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn set_rotation(&mut self, rot: Vector4<f32>) -> &mut Self {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_loop`
[INFO] [stdout]    --> src/world_state.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         game_loop: &GameLoop,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VertArray` is never used
[INFO] [stdout]  --> src/geometry.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type VertArray = js_sys::Float32Array;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_square` is never used
[INFO] [stdout]  --> src/geometry.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn new_square(scale: f32) -> Vec<f32> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3d` is never constructed
[INFO] [stdout]   --> src/geometry.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Point3d(f32, f32, f32);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_cube` is never used
[INFO] [stdout]   --> src/geometry.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn new_cube(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `f_3d` is never used
[INFO] [stdout]   --> src/geometry.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn f_3d(scale: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mouse_x` and `get_mouse_y` are never used
[INFO] [stdout]  --> src/inputs.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Input {
[INFO] [stdout]   |           ----- methods in this trait
[INFO] [stdout] 6 |     fn get_mouse_x(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 7 |     fn get_mouse_y(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log` is never used
[INFO] [stdout]   --> src/js_bindings.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn log(s: &str) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]   --> src/maths_utils.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn lerp<T: Float + NumOps>(from: T, to: T, t: T) -> T {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mesh_string` is never used
[INFO] [stdout]   --> src/mesh/wavefront_obj.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn mesh_string() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vaos` is never read
[INFO] [stdout]   --> src/rendering.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct ProgramData {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     vaos: BTreeMap<String, GlVao>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgramData` 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: field `face_normal_vao` is never read
[INFO] [stdout]    --> src/rendering.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct RenderItem {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 236 |     face_normal_vao: Option<GlVao>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `default_color` is never read
[INFO] [stdout]    --> src/rendering.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct RenderLineBuilder<'a, RendererT: ?Sized> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 298 |     default_color: (f32, f32, f32, f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_line`, `enabled`, and `default_color` are never used
[INFO] [stdout]    --> src/rendering.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 302 | impl<'a, RendererT: Renderer + ?Sized> RenderLineBuilder<'a, RendererT> {
[INFO] [stdout]     | ----------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn add_line(self, line: (Vector3<f32>, Vector3<f32>)) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     build_setter!(enabled, bool);
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     build_setter_defaulted!(default_color, (f32, f32, f32, f32));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `build_setter` which comes from the expansion of the macro `build_setter_defaulted` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug_draw_face_normals` is never used
[INFO] [stdout]    --> src/rendering.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl RenderItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:493:29
[INFO] [stdout]     |
[INFO] [stdout] 493 |     FailedToGetUniformLoc { info: String },
[INFO] [stdout]     |     ---------------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:494:20
[INFO] [stdout]     |
[INFO] [stdout] 494 |     NoBufferSize { info: String },
[INFO] [stdout]     |     ------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]    --> src/rendering.rs:495:18
[INFO] [stdout]     |
[INFO] [stdout] 495 |     FailedDraw { info: String },
[INFO] [stdout]     |     ----------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tmp_mat_b` is never read
[INFO] [stdout]    --> src/rendering.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 499 | pub struct RendererOrtho3D {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 507 |     tmp_mat_b: RefCell<na::Matrix4<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RendererOrtho3D` 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: struct `Rigidbody3D` is never constructed
[INFO] [stdout]  --> src/rigidbody.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Rigidbody3D {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `apply_force`, and `apply_angular_force` are never used
[INFO] [stdout]   --> src/rigidbody.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Rigidbody3D {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn apply_force(&mut self, f: Vector3<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_rand_pos` is never used
[INFO] [stdout]    --> src/spin.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn set_rand_pos(tf: &mut Transform) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_tf` is never used
[INFO] [stdout]    --> src/spin.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn spin_tf(tf: &mut Transform, delta: EulerAngles3D<f32>, delta_time: f32) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TorusGen` is never constructed
[INFO] [stdout]    --> src/spin.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct TorusGen {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/spin.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl TorusGen {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 267 |     pub fn new(program_data: ProgramData) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseFollower` is never constructed
[INFO] [stdout]    --> src/spin.rs:316:8
[INFO] [stdout]     |
[INFO] [stdout] 316 | struct MouseFollower {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color` is never used
[INFO] [stdout]    --> src/spin.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn get_color() -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Wfc` is never used
[INFO] [stdout]  --> src/util.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Wfc<T> = Weak<RefCell<T>>;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MovingBlockBehavior` is never constructed
[INFO] [stdout]   --> src/game/blocks.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct MovingBlockBehavior {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CottageMaker` is never constructed
[INFO] [stdout]   --> src/game/cottage_scene.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CottageMaker {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scripts` and `parent_id` are never read
[INFO] [stdout]   --> src/world_object.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct WorldObject3DInit {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub scripts: Vec<Rc<dyn Steppable<WorldState>>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub children_ids: Vec<WorldObjectId>,
[INFO] [stdout] 37 |     pub parent_id: Option<WorldObjectId>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rev` is never constructed
[INFO] [stdout]   --> src/world_state.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RendQueueType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 16 |     Fwd,
[INFO] [stdout] 17 |     Rev,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     game_loop.load_in();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let _ = game_loop.load_in();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.22s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.87
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 10`
[INFO] running `Command { std: "docker" "inspect" "e35d5489eca87b3a53afcf43252b831f1f1699e57f6554b39fc1421a4ccd24dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e35d5489eca87b3a53afcf43252b831f1f1699e57f6554b39fc1421a4ccd24dd", kill_on_drop: false }`
[INFO] [stdout] e35d5489eca87b3a53afcf43252b831f1f1699e57f6554b39fc1421a4ccd24dd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2476a49ac72513066f090362b1fc592722bb1b5373c06af585e7355c409e4645
[INFO] running `Command { std: "docker" "start" "-a" "2476a49ac72513066f090362b1fc592722bb1b5373c06af585e7355c409e4645", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::future::Future`
[INFO] [stderr]  --> src/js_bindings.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::future::Future;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> src/mesh/wavefront_obj.rs:3:13
[INFO] [stderr]   |
[INFO] [stderr] 3 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RwLock`
[INFO] [stderr]  --> src/spin.rs:4:29
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::sync::{Arc, Mutex, RwLock};
[INFO] [stderr]   |                             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Document`
[INFO] [stderr]  --> src/spin.rs:9:15
[INFO] [stderr]   |
[INFO] [stderr] 9 | use web_sys::{Document, HtmlCanvasElement, WebGl2RenderingContext as Gl, WebGlProgram};
[INFO] [stderr]   |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::geometry`
[INFO] [stderr]   --> src/spin.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::geometry;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mesh`
[INFO] [stderr]   --> src/spin.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::mesh;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WorldObject3D`
[INFO] [stderr]   --> src/spin.rs:23:47
[INFO] [stderr]    |
[INFO] [stderr] 23 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/transform.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc` and `Mutex`
[INFO] [stderr]  --> src/game/blocks.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::maths_utils`
[INFO] [stderr]  --> src/game/blocks.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::maths_utils;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WorldObject3D`
[INFO] [stderr]  --> src/game/cottage_scene.rs:7:47
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Material, MeshComponent, RenderComponent, WorldObject3D, WorldObject3DInit,
[INFO] [stderr]   |                                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BufferInfo`, `BufferSettings`, `Bufferable`, `ProgramData`, `RenderItem`, and `Renderer`
[INFO] [stderr]  --> src/shader_config/vertex_color_3d.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 3 |         BufferInfo, BufferSettings, Bufferable, ProgramData, RenderItem, Renderer,
[INFO] [stderr]   |         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `web_sys::WebGl2RenderingContext as Gl`
[INFO] [stderr]  --> src/shader_config/vertex_color_3d.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     use web_sys::WebGl2RenderingContext as Gl;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition name: `Test`
[INFO] [stderr]    --> src/world_object.rs:153:7
[INFO] [stderr]     |
[INFO] [stderr] 153 | #[cfg(Test)]
[INFO] [stderr]     |       ^^^^ help: there is a config with a similar name: `test`
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider using a Cargo feature instead
[INFO] [stderr]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stderr]              [lints.rust]
[INFO] [stderr]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(Test)'] }
[INFO] [stderr]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(Test)");` to the top of the `build.rs`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Weak`
[INFO] [stderr]  --> src/world_object.rs:2:19
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::{Rc, Weak};
[INFO] [stderr]   |                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc`
[INFO] [stderr]  --> src/world_state.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Wfc`
[INFO] [stderr]   --> src/world_state.rs:12:24
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::util::{Rfc, Wfc};
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `u_location_names`
[INFO] [stderr]   --> src/lib.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 60 |     u_location_names: JsValue,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_location_names`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `preloaded_game_data`
[INFO] [stderr]   --> src/lib.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     preloaded_game_data: PreloadedGameData,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preloaded_game_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/spin.rs:288:28
[INFO] [stderr]     |
[INFO] [stderr] 288 |                   mesh: Some(MeshComponent {
[INFO] [stderr]     |  ____________________________^
[INFO] [stderr] 289 | |                     data: panic!("Not implemented"), //mesh::wavefront_obj::into_vertex_vec("ERROR").expect("Could not convert "),
[INFO] [stderr]     | |                           ------------------------- any code following this expression is unreachable
[INFO] [stderr] 290 | |                 }),
[INFO] [stderr]     | |_________________^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/game/cottage_scene.rs:30:42
[INFO] [stderr]    |
[INFO] [stderr] 30 |   ...                   render: Some(RenderComponent {
[INFO] [stderr]    |  ____________________________________^
[INFO] [stderr] 31 | | ...                       renderer,
[INFO] [stderr] 32 | | ...                       material: Material {
[INFO] [stderr] 33 | | ...                           color: (0.5, 0.5, 0.5, 1.0),
[INFO] [stderr] 34 | | ...                       },
[INFO] [stderr] 35 | | ...                       gl_program_data: panic!(),
[INFO] [stderr]    | |                                            -------- any code following this expression is unreachable
[INFO] [stderr] 36 | | ...                   }),
[INFO] [stderr]    | |_______________________^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ctx`
[INFO] [stderr]    --> src/rendering.rs:441:39
[INFO] [stderr]     |
[INFO] [stderr] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/rigidbody.rs:33:43
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stderr]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `idx`
[INFO] [stderr]    --> src/spin.rs:239:33
[INFO] [stderr]     |
[INFO] [stderr] 239 |     pub fn get_mesh_data(&self, idx: usize) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_obj`
[INFO] [stderr]    --> src/spin.rs:278:17
[INFO] [stderr]     |
[INFO] [stderr] 278 |             let new_obj = WorldObject3DInit {
[INFO] [stderr]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_obj`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rot`
[INFO] [stderr]   --> src/transform.rs:58:36
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn set_rotation(&mut self, rot: Vector4<f32>) -> &mut Self {
[INFO] [stderr]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `game_loop`
[INFO] [stderr]    --> src/world_state.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |         game_loop: &GameLoop,
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `game_loop`
[INFO] [stderr]    --> src/world_state.rs:169:9
[INFO] [stderr]     |
[INFO] [stderr] 169 |         game_loop: &GameLoop,
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `VertArray` is never used
[INFO] [stderr]  --> src/geometry.rs:1:10
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub type VertArray = js_sys::Float32Array;
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_square` is never used
[INFO] [stderr]  --> src/geometry.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn new_square(scale: f32) -> Vec<f32> {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Point3d` is never constructed
[INFO] [stderr]   --> src/geometry.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Point3d(f32, f32, f32);
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_cube` is never used
[INFO] [stderr]   --> src/geometry.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn new_cube(scale: f32) -> Vec<f32> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `f_3d` is never used
[INFO] [stderr]   --> src/geometry.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn f_3d(scale: f32) -> Vec<f32> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_mouse_x` and `get_mouse_y` are never used
[INFO] [stderr]  --> src/inputs.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub trait Input {
[INFO] [stderr]   |           ----- methods in this trait
[INFO] [stderr] 6 |     fn get_mouse_x(&self) -> f32;
[INFO] [stderr]   |        ^^^^^^^^^^^
[INFO] [stderr] 7 |     fn get_mouse_y(&self) -> f32;
[INFO] [stderr]   |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log` is never used
[INFO] [stderr]   --> src/js_bindings.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub fn log(s: &str) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lerp` is never used
[INFO] [stderr]   --> src/maths_utils.rs:67:8
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub fn lerp<T: Float + NumOps>(from: T, to: T, t: T) -> T {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mesh_string` is never used
[INFO] [stderr]   --> src/mesh/wavefront_obj.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn mesh_string() -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `vaos` is never read
[INFO] [stderr]   --> src/rendering.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct ProgramData {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 67 |     vaos: BTreeMap<String, GlVao>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ProgramData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `face_normal_vao` is never read
[INFO] [stderr]    --> src/rendering.rs:236:5
[INFO] [stderr]     |
[INFO] [stderr] 230 | pub struct RenderItem {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 236 |     face_normal_vao: Option<GlVao>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RenderItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `default_color` is never read
[INFO] [stderr]    --> src/rendering.rs:298:5
[INFO] [stderr]     |
[INFO] [stderr] 292 | pub struct RenderLineBuilder<'a, RendererT: ?Sized> {
[INFO] [stderr]     |            ----------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 298 |     default_color: (f32, f32, f32, f32),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `add_line`, `enabled`, and `default_color` are never used
[INFO] [stderr]    --> src/rendering.rs:346:12
[INFO] [stderr]     |
[INFO] [stderr] 302 | impl<'a, RendererT: Renderer + ?Sized> RenderLineBuilder<'a, RendererT> {
[INFO] [stderr]     | ----------------------------------------------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 346 |     pub fn add_line(self, line: (Vector3<f32>, Vector3<f32>)) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 375 |     build_setter!(enabled, bool);
[INFO] [stderr]     |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 379 |     build_setter_defaulted!(default_color, (f32, f32, f32, f32));
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `build_setter` which comes from the expansion of the macro `build_setter_defaulted` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: method `debug_draw_face_normals` is never used
[INFO] [stderr]    --> src/rendering.rs:441:8
[INFO] [stderr]     |
[INFO] [stderr] 382 | impl RenderItem {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 441 |     fn debug_draw_face_normals(&self, ctx: &Gl) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `info` is never read
[INFO] [stderr]    --> src/rendering.rs:493:29
[INFO] [stderr]     |
[INFO] [stderr] 493 |     FailedToGetUniformLoc { info: String },
[INFO] [stderr]     |     ---------------------   ^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `info` is never read
[INFO] [stderr]    --> src/rendering.rs:494:20
[INFO] [stderr]     |
[INFO] [stderr] 494 |     NoBufferSize { info: String },
[INFO] [stderr]     |     ------------   ^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `info` is never read
[INFO] [stderr]    --> src/rendering.rs:495:18
[INFO] [stderr]     |
[INFO] [stderr] 495 |     FailedDraw { info: String },
[INFO] [stderr]     |     ----------   ^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `tmp_mat_b` is never read
[INFO] [stderr]    --> src/rendering.rs:507:5
[INFO] [stderr]     |
[INFO] [stderr] 499 | pub struct RendererOrtho3D {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 507 |     tmp_mat_b: RefCell<na::Matrix4<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RendererOrtho3D` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rigidbody3D` is never constructed
[INFO] [stderr]  --> src/rigidbody.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Rigidbody3D {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `apply_force`, and `apply_angular_force` are never used
[INFO] [stderr]   --> src/rigidbody.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl Rigidbody3D {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 16 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     pub fn apply_force(&mut self, f: Vector3<f32>) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn apply_angular_force(&mut self, f: EulerAngles3D<f32>) {}
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_rand_pos` is never used
[INFO] [stderr]    --> src/spin.rs:244:4
[INFO] [stderr]     |
[INFO] [stderr] 244 | fn set_rand_pos(tf: &mut Transform) {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `spin_tf` is never used
[INFO] [stderr]    --> src/spin.rs:252:4
[INFO] [stderr]     |
[INFO] [stderr] 252 | fn spin_tf(tf: &mut Transform, delta: EulerAngles3D<f32>, delta_time: f32) {
[INFO] [stderr]     |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TorusGen` is never constructed
[INFO] [stderr]    --> src/spin.rs:261:8
[INFO] [stderr]     |
[INFO] [stderr] 261 | struct TorusGen {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/spin.rs:267:12
[INFO] [stderr]     |
[INFO] [stderr] 266 | impl TorusGen {
[INFO] [stderr]     | ------------- associated function in this implementation
[INFO] [stderr] 267 |     pub fn new(program_data: ProgramData) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MouseFollower` is never constructed
[INFO] [stderr]    --> src/spin.rs:316:8
[INFO] [stderr]     |
[INFO] [stderr] 316 | struct MouseFollower {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_color` is never used
[INFO] [stderr]    --> src/spin.rs:349:4
[INFO] [stderr]     |
[INFO] [stderr] 349 | fn get_color() -> Vec<u8> {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Wfc` is never used
[INFO] [stderr]  --> src/util.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub type Wfc<T> = Weak<RefCell<T>>;
[INFO] [stderr]   |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MovingBlockBehavior` is never constructed
[INFO] [stderr]   --> src/game/blocks.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | struct MovingBlockBehavior {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CottageMaker` is never constructed
[INFO] [stderr]   --> src/game/cottage_scene.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 | struct CottageMaker {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `scripts` and `parent_id` are never read
[INFO] [stderr]   --> src/world_object.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct WorldObject3DInit {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub scripts: Vec<Rc<dyn Steppable<WorldState>>>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 36 |     pub children_ids: Vec<WorldObjectId>,
[INFO] [stderr] 37 |     pub parent_id: Option<WorldObjectId>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Rev` is never constructed
[INFO] [stderr]   --> src/world_state.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub enum RendQueueType {
[INFO] [stderr]    |          ------------- variant in this enum
[INFO] [stderr] 16 |     Fwd,
[INFO] [stderr] 17 |     Rev,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/lib.rs:99:5
[INFO] [stderr]    |
[INFO] [stderr] 99 |     game_loop.load_in();
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let _ = game_loop.load_in();
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `js_canvas` (lib) generated 60 warnings (run `cargo fix --lib -p js_canvas` to apply 16 suggestions)
[INFO] [stderr] warning: `js_canvas` (lib test) generated 60 warnings (60 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.87
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 10`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/js_canvas-fee71a39df6cfd2b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test maths_utils::tests::equality ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests js_canvas
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2476a49ac72513066f090362b1fc592722bb1b5373c06af585e7355c409e4645", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2476a49ac72513066f090362b1fc592722bb1b5373c06af585e7355c409e4645", kill_on_drop: false }`
[INFO] [stdout] 2476a49ac72513066f090362b1fc592722bb1b5373c06af585e7355c409e4645
