[INFO] fetching crate cuboid 0.1.0...
[INFO] testing cuboid-0.1.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate cuboid 0.1.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate cuboid 0.1.0
[INFO] finished tweaking crates.io crate cuboid 0.1.0
[INFO] tweaked toml for crates.io crate cuboid 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate cuboid 0.1.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cuboid 0.1.0 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8824ed7484f99c1b27c847aa3a55b631f25968b491b6a9c8aeafeb6371fe34e9
[INFO] running `Command { std: "docker" "start" "-a" "8824ed7484f99c1b27c847aa3a55b631f25968b491b6a9c8aeafeb6371fe34e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8824ed7484f99c1b27c847aa3a55b631f25968b491b6a9c8aeafeb6371fe34e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8824ed7484f99c1b27c847aa3a55b631f25968b491b6a9c8aeafeb6371fe34e9", kill_on_drop: false }`
[INFO] [stdout] 8824ed7484f99c1b27c847aa3a55b631f25968b491b6a9c8aeafeb6371fe34e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 812ce341134b9a4d2cb1450a084cd26ae25ab2eb37a5191a619c4ad9156be05c
[INFO] running `Command { std: "docker" "start" "-a" "812ce341134b9a4d2cb1450a084cd26ae25ab2eb37a5191a619c4ad9156be05c", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling cty v0.2.2
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling raw-window-handle v0.4.2
[INFO] [stderr]    Compiling cmake v0.1.48
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling glfw-sys v3.3.5
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]    Compiling glfw v0.43.0
[INFO] [stderr]    Compiling cuboid v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/io/cam_controller.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         key: glfw::Key,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]   --> src/io/cam_controller.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         scancode: glfw::Scancode,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/io/cam_controller.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         mouse_button: glfw::MouseButton,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:43
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                                   ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enter`
[INFO] [stdout]   --> src/io/cam_controller.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn handle_cursor_enter_event(&mut self, enter: bool) {}
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_enter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/components/material.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material {
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material<'_> {
[INFO] [stdout]   |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `String` will be dropped
[INFO] [stdout]  --> src/utils/str.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 |     return append_null(name).as_ptr() as *const i8;
[INFO] [stdout]   |            ----------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]   |            |
[INFO] [stdout]   |            this `String` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]   |
[INFO] [stdout]   = note: pointers do not have a lifetime; when calling `as_ptr` the `String` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]   = help: you must make sure that the variable you bind the `String` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]   = help: in particular, if this pointer is returned from the current function, binding the `String` inside the function will not suffice
[INFO] [stdout]   = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]   = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.42s
[INFO] running `Command { std: "docker" "inspect" "812ce341134b9a4d2cb1450a084cd26ae25ab2eb37a5191a619c4ad9156be05c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "812ce341134b9a4d2cb1450a084cd26ae25ab2eb37a5191a619c4ad9156be05c", kill_on_drop: false }`
[INFO] [stdout] 812ce341134b9a4d2cb1450a084cd26ae25ab2eb37a5191a619c4ad9156be05c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7382da53001241432fb1a33a0a37c00da3aa8e474ae07d37bc1627f47630418e
[INFO] running `Command { std: "docker" "start" "-a" "7382da53001241432fb1a33a0a37c00da3aa8e474ae07d37bc1627f47630418e", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/io/cam_controller.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         key: glfw::Key,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]   --> src/io/cam_controller.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         scancode: glfw::Scancode,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/io/cam_controller.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         mouse_button: glfw::MouseButton,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:43
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                                   ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enter`
[INFO] [stdout]   --> src/io/cam_controller.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn handle_cursor_enter_event(&mut self, enter: bool) {}
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_enter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/components/material.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material {
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material<'_> {
[INFO] [stdout]   |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `String` will be dropped
[INFO] [stdout]  --> src/utils/str.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 |     return append_null(name).as_ptr() as *const i8;
[INFO] [stdout]   |            ----------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]   |            |
[INFO] [stdout]   |            this `String` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]   |
[INFO] [stdout]   = note: pointers do not have a lifetime; when calling `as_ptr` the `String` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]   = help: you must make sure that the variable you bind the `String` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]   = help: in particular, if this pointer is returned from the current function, binding the `String` inside the function will not suffice
[INFO] [stdout]   = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]   = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cuboid v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]   --> examples/basic_example/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use shiny::components::{
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `shiny`, use `cargo add shiny` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]   --> examples/basic_example/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use shiny::core::shader::Shader;
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `shiny`, use `cargo add shiny` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]   --> examples/basic_example/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use shiny::io::cam_controller::CameraController;
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `shiny`, use `cargo add shiny` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]   --> examples/basic_example/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use shiny::utils::{conversions, init, math::linalg, types};
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `shiny`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `shiny`, use `cargo add shiny` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Action` and `Key`
[INFO] [stdout]  --> examples/basic_example/main.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glfw::{Action, Context, Key};
[INFO] [stdout]   |            ^^^^^^           ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cuboid` (example "basic_example") due to 4 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/io/cam_controller.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         key: glfw::Key,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]   --> src/io/cam_controller.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         scancode: glfw::Scancode,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/io/cam_controller.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         mouse_button: glfw::MouseButton,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/io/cam_controller.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         action: glfw::Action,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/io/cam_controller.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         modifiers: glfw::Modifiers,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:43
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/io/cam_controller.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn handle_cursor_pos_event(&mut self, x: f64, y: f64) {}
[INFO] [stdout]    |                                                   ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enter`
[INFO] [stdout]   --> src/io/cam_controller.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn handle_cursor_enter_event(&mut self, enter: bool) {}
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_enter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/components/material.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material {
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn new(shader: &core::shader::Shader) -> Material<'_> {
[INFO] [stdout]   |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `String` will be dropped
[INFO] [stdout]  --> src/utils/str.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 |     return append_null(name).as_ptr() as *const i8;
[INFO] [stdout]   |            ----------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]   |            |
[INFO] [stdout]   |            this `String` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]   |
[INFO] [stdout]   = note: pointers do not have a lifetime; when calling `as_ptr` the `String` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]   = help: you must make sure that the variable you bind the `String` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]   = help: in particular, if this pointer is returned from the current function, binding the `String` inside the function will not suffice
[INFO] [stdout]   = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]   = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7382da53001241432fb1a33a0a37c00da3aa8e474ae07d37bc1627f47630418e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7382da53001241432fb1a33a0a37c00da3aa8e474ae07d37bc1627f47630418e", kill_on_drop: false }`
[INFO] [stdout] 7382da53001241432fb1a33a0a37c00da3aa8e474ae07d37bc1627f47630418e
