[INFO] cloning repository https://github.com/michel4ngel0/show_and_tell
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/michel4ngel0/show_and_tell" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichel4ngel0%2Fshow_and_tell", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichel4ngel0%2Fshow_and_tell'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2425d94b235785e0e698cdac5509d68a9661eda7
[INFO] testing michel4ngel0/show_and_tell against 1.75.0 for beta-1.76-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichel4ngel0%2Fshow_and_tell" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/michel4ngel0/show_and_tell on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/michel4ngel0/show_and_tell
[INFO] finished tweaking git repo https://github.com/michel4ngel0/show_and_tell
[INFO] tweaked toml for git repo https://github.com/michel4ngel0/show_and_tell written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/michel4ngel0/show_and_tell 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.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wayland-scanner v0.7.8
[INFO] [stderr]   Downloaded android_glue v0.2.2
[INFO] [stderr]   Downloaded shell32-sys v0.1.1
[INFO] [stderr]   Downloaded shared_library v0.1.5
[INFO] [stderr]   Downloaded dwmapi-sys v0.1.0
[INFO] [stderr]   Downloaded lazy_static v0.2.5
[INFO] [stderr]   Downloaded target_build_utils v0.3.0
[INFO] [stderr]   Downloaded wayland-sys v0.7.8
[INFO] [stderr]   Downloaded itoa v0.3.1
[INFO] [stderr]   Downloaded wayland-window v0.4.4
[INFO] [stderr]   Downloaded thread_local v0.3.3
[INFO] [stderr]   Downloaded bitflags v0.5.0
[INFO] [stderr]   Downloaded khronos_api v1.0.0
[INFO] [stderr]   Downloaded serde_json v0.9.9
[INFO] [stderr]   Downloaded wayland-kbd v0.6.3
[INFO] [stderr]   Downloaded x11-dl v2.12.0
[INFO] [stderr]   Downloaded winit v0.5.11
[INFO] [stderr]   Downloaded wayland-client v0.7.8
[INFO] [stderr]   Downloaded glutin v0.7.4
[INFO] [stderr]   Downloaded tempfile v2.1.5
[INFO] [stderr]   Downloaded rayon v0.6.0
[INFO] [stderr]   Downloaded serde v0.9.12
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.11
[INFO] [stderr]   Downloaded dtoa v0.4.1
[INFO] [stderr]   Downloaded deflate v0.7.5
[INFO] [stderr]   Downloaded cgmath v0.12.0
[INFO] [stderr]   Downloaded gl_generator v0.5.2
[INFO] [stderr]   Downloaded user32-sys v0.1.2
[INFO] [stderr]   Downloaded num-integer v0.1.33
[INFO] [stderr]   Downloaded gl v0.6.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7567e82ec948a0554656410cc95701f43ca4e2b805f74650c4e4efa199a68491
[INFO] running `Command { std: "docker" "start" "-a" "7567e82ec948a0554656410cc95701f43ca4e2b805f74650c4e4efa199a68491", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7567e82ec948a0554656410cc95701f43ca4e2b805f74650c4e4efa199a68491", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7567e82ec948a0554656410cc95701f43ca4e2b805f74650c4e4efa199a68491", kill_on_drop: false }`
[INFO] [stdout] 7567e82ec948a0554656410cc95701f43ca4e2b805f74650c4e4efa199a68491
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f9d438fcb80abd8d45fa5f419cd6800595bf896220fbbc99067b790f0a521c33
[INFO] running `Command { std: "docker" "start" "-a" "f9d438fcb80abd8d45fa5f419cd6800595bf896220fbbc99067b790f0a521c33", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.21
[INFO] [stderr]    Compiling num-traits v0.1.37
[INFO] [stderr]    Compiling siphasher v0.2.2
[INFO] [stderr]    Compiling bitflags v0.5.0
[INFO] [stderr]    Compiling itoa v0.3.1
[INFO] [stderr]    Compiling dtoa v0.4.1
[INFO] [stderr]    Compiling serde v0.9.12
[INFO] [stderr]    Compiling lazy_static v0.2.5
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling byteorder v1.0.0
[INFO] [stderr]    Compiling log v0.3.7
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling khronos_api v1.0.0
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling pkg-config v0.3.9
[INFO] [stderr]    Compiling xml-rs v0.3.6
[INFO] [stderr]    Compiling adler32 v1.0.0
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling phf_shared v0.7.21
[INFO] [stderr]    Compiling deflate v0.7.5
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling inflate v0.1.1
[INFO] [stderr]    Compiling phf v0.7.21
[INFO] [stderr]    Compiling lzw v0.10.0
[INFO] [stderr]    Compiling color_quant v1.0.0
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]    Compiling glob v0.2.11
[INFO] [stderr]    Compiling rustc-serialize v0.3.23
[INFO] [stderr]    Compiling rand v0.3.15
[INFO] [stderr]    Compiling num-integer v0.1.33
[INFO] [stderr]    Compiling shared_library v0.1.5
[INFO] [stderr]    Compiling num_cpus v1.3.0
[INFO] [stderr]    Compiling fs2 v0.2.5
[INFO] [stderr]    Compiling thread-id v3.0.0
[INFO] [stderr]    Compiling memchr v1.0.1
[INFO] [stderr]    Compiling gif v0.9.1
[INFO] [stderr]    Compiling wayland-scanner v0.7.8
[INFO] [stderr]    Compiling gl_generator v0.5.2
[INFO] [stderr]    Compiling tempfile v2.1.5
[INFO] [stderr]    Compiling x11-dl v2.12.0
[INFO] [stderr]    Compiling memmap v0.4.0
[INFO] [stderr]    Compiling num-iter v0.1.33
[INFO] [stderr]    Compiling phf_generator v0.7.21
[INFO] [stderr]    Compiling deque v0.3.1
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling phf_codegen v0.7.21
[INFO] [stderr]    Compiling rayon v0.6.0
[INFO] [stderr]    Compiling aho-corasick v0.6.3
[INFO] [stderr]    Compiling thread_local v0.3.3
[INFO] [stderr]    Compiling num-rational v0.1.36
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling scoped_threadpool v0.1.7
[INFO] [stderr]    Compiling approx v0.1.1
[INFO] [stderr]    Compiling target_build_utils v0.3.0
[INFO] [stderr]    Compiling png v0.6.2
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling regex-syntax v0.4.0
[INFO] [stderr]    Compiling wayland-client v0.7.8
[INFO] [stderr]    Compiling glutin v0.7.4
[INFO] [stderr]    Compiling gl v0.6.1
[INFO] [stderr]    Compiling jpeg-decoder v0.1.11
[INFO] [stderr]    Compiling cgmath v0.12.0
[INFO] [stderr]    Compiling regex v0.2.1
[INFO] [stderr]    Compiling image v0.12.3
[INFO] [stderr]    Compiling serde_json v0.9.9
[INFO] [stderr]    Compiling libloading v0.3.4
[INFO] [stderr]    Compiling dlib v0.3.1
[INFO] [stderr]    Compiling wayland-sys v0.7.8
[INFO] [stderr]    Compiling wayland-window v0.4.4
[INFO] [stderr]    Compiling wayland-kbd v0.6.3
[INFO] [stderr]    Compiling winit v0.5.11
[INFO] [stderr]    Compiling show_and_tell v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::f64::consts::E`
[INFO] [stdout]  --> src/visualization/camera.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]    --> src/visualization/core.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     use std::ops::Deref;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_now`
[INFO] [stdout]   --> src/server/core.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |             let time_now = Instant::now();
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_now`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]   --> src/visualization/camera.rs:47:35
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/visualization/camera.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut result = if height <= 10.0 { 1.0 } else { 0.1 * (height - 10.0) + 1.0 };
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `is_left_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut is_left_pressed   = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_left_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `is_middle_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut is_middle_pressed = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_middle_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `window_x` is never read
[INFO] [stdout]    --> src/visualization/core.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |                         window_x = x;
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_left_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   Left   => is_left_pressed   = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_middle_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:136:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...                   Middle => is_middle_pressed = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/visualization/render.rs:485:25
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 let mut x_pos = 0.0;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/visualization/render.rs:1053:9
[INFO] [stdout]      |
[INFO] [stdout] 1053 |     for mut byte in text.into_bytes() {
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn_around` is never used
[INFO] [stdout]   --> src/visualization/camera.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config_file` is never read
[INFO] [stdout]   --> src/visualization/configuration.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Configuration {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 61 |     config_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:260:89
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:261:89
[INFO] [stdout]     |
[INFO] [stdout] 261 |                 gl::BindFragDataLocation(program, 1, CString::new("out_index").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:265:56
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     CString::new("v_pos_xyz").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:269:55
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:273:62
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     CString::new("u_texture_bound").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:277:54
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     CString::new("u_model").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:281:66
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     CString::new("u_camera_projection").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:285:56
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     CString::new("u_texture").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:289:54
[INFO] [stdout]     |
[INFO] [stdout] 289 |                     CString::new("u_color").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:293:51
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     CString::new("u_id").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:297:68
[INFO] [stdout]     |
[INFO] [stdout] 297 |                     CString::new("u_selection_highlight").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:431:89
[INFO] [stdout]     |
[INFO] [stdout] 431 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:435:55
[INFO] [stdout]     |
[INFO] [stdout] 435 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:439:55
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:446:60
[INFO] [stdout]     |
[INFO] [stdout] 446 |                     CString::new("u_font_bitmap").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:453:58
[INFO] [stdout]     |
[INFO] [stdout] 453 |                     CString::new("u_transform").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:457:52
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     CString::new("tex_u").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:461:52
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     CString::new("tex_v").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:544:89
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:548:55
[INFO] [stdout]     |
[INFO] [stdout] 548 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:552:55
[INFO] [stdout]     |
[INFO] [stdout] 552 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:559:63
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     CString::new("u_rendered_scene").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:17:47
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Err(error)  => Err(String::from(error.description())),
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 22.76s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.23
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "f9d438fcb80abd8d45fa5f419cd6800595bf896220fbbc99067b790f0a521c33", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9d438fcb80abd8d45fa5f419cd6800595bf896220fbbc99067b790f0a521c33", kill_on_drop: false }`
[INFO] [stdout] f9d438fcb80abd8d45fa5f419cd6800595bf896220fbbc99067b790f0a521c33
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 10a3f4e30e57ca0352e48d5dc922643220c7c998e3cec69663a2e61d53f1d1f2
[INFO] running `Command { std: "docker" "start" "-a" "10a3f4e30e57ca0352e48d5dc922643220c7c998e3cec69663a2e61d53f1d1f2", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::f64::consts::E`
[INFO] [stdout]  --> src/visualization/camera.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]    --> src/visualization/core.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     use std::ops::Deref;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_now`
[INFO] [stdout]   --> src/server/core.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |             let time_now = Instant::now();
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_now`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]   --> src/visualization/camera.rs:47:35
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/visualization/camera.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut result = if height <= 10.0 { 1.0 } else { 0.1 * (height - 10.0) + 1.0 };
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling show_and_tell v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable `is_left_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut is_left_pressed   = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_left_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `is_middle_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut is_middle_pressed = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_middle_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `window_x` is never read
[INFO] [stdout]    --> src/visualization/core.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |                         window_x = x;
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_left_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   Left   => is_left_pressed   = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_middle_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:136:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...                   Middle => is_middle_pressed = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/visualization/render.rs:485:25
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 let mut x_pos = 0.0;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/visualization/render.rs:1053:9
[INFO] [stdout]      |
[INFO] [stdout] 1053 |     for mut byte in text.into_bytes() {
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn_around` is never used
[INFO] [stdout]   --> src/visualization/camera.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config_file` is never read
[INFO] [stdout]   --> src/visualization/configuration.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Configuration {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 61 |     config_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:260:89
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:261:89
[INFO] [stdout]     |
[INFO] [stdout] 261 |                 gl::BindFragDataLocation(program, 1, CString::new("out_index").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:265:56
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     CString::new("v_pos_xyz").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:269:55
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:273:62
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     CString::new("u_texture_bound").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:277:54
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     CString::new("u_model").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:281:66
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     CString::new("u_camera_projection").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:285:56
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     CString::new("u_texture").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:289:54
[INFO] [stdout]     |
[INFO] [stdout] 289 |                     CString::new("u_color").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:293:51
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     CString::new("u_id").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:297:68
[INFO] [stdout]     |
[INFO] [stdout] 297 |                     CString::new("u_selection_highlight").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:431:89
[INFO] [stdout]     |
[INFO] [stdout] 431 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:435:55
[INFO] [stdout]     |
[INFO] [stdout] 435 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:439:55
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:446:60
[INFO] [stdout]     |
[INFO] [stdout] 446 |                     CString::new("u_font_bitmap").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:453:58
[INFO] [stdout]     |
[INFO] [stdout] 453 |                     CString::new("u_transform").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:457:52
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     CString::new("tex_u").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:461:52
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     CString::new("tex_v").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:544:89
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:548:55
[INFO] [stdout]     |
[INFO] [stdout] 548 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:552:55
[INFO] [stdout]     |
[INFO] [stdout] 552 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:559:63
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     CString::new("u_rendered_scene").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:17:47
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Err(error)  => Err(String::from(error.description())),
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::E`
[INFO] [stdout]  --> src/visualization/camera.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]    --> src/visualization/core.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     use std::ops::Deref;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]  --> src/types/message.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/types/message.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_now`
[INFO] [stdout]   --> src/server/core.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |             let time_now = Instant::now();
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_now`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]   --> src/visualization/camera.rs:47:35
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/visualization/camera.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut result = if height <= 10.0 { 1.0 } else { 0.1 * (height - 10.0) + 1.0 };
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `is_left_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut is_left_pressed   = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_left_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `is_middle_pressed` is assigned to, but never used
[INFO] [stdout]   --> src/visualization/core.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut is_middle_pressed = false;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_is_middle_pressed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `window_x` is never read
[INFO] [stdout]    --> src/visualization/core.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |                         window_x = x;
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_left_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   Left   => is_left_pressed   = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_middle_pressed` is never read
[INFO] [stdout]    --> src/visualization/core.rs:136:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...                   Middle => is_middle_pressed = value,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/visualization/render.rs:485:25
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 let mut x_pos = 0.0;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/visualization/render.rs:1053:9
[INFO] [stdout]      |
[INFO] [stdout] 1053 |     for mut byte in text.into_bytes() {
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn_around` is never used
[INFO] [stdout]   --> src/visualization/camera.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config_file` is never read
[INFO] [stdout]   --> src/visualization/configuration.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Configuration {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 61 |     config_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:260:89
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:261:89
[INFO] [stdout]     |
[INFO] [stdout] 261 |                 gl::BindFragDataLocation(program, 1, CString::new("out_index").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:265:56
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     CString::new("v_pos_xyz").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:269:55
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:273:62
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     CString::new("u_texture_bound").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:277:54
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     CString::new("u_model").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:281:66
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     CString::new("u_camera_projection").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:285:56
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     CString::new("u_texture").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:289:54
[INFO] [stdout]     |
[INFO] [stdout] 289 |                     CString::new("u_color").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:293:51
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     CString::new("u_id").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:297:68
[INFO] [stdout]     |
[INFO] [stdout] 297 |                     CString::new("u_selection_highlight").unwrap().as_ptr()
[INFO] [stdout]     |                     ---------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:431:89
[INFO] [stdout]     |
[INFO] [stdout] 431 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:435:55
[INFO] [stdout]     |
[INFO] [stdout] 435 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:439:55
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:446:60
[INFO] [stdout]     |
[INFO] [stdout] 446 |                     CString::new("u_font_bitmap").unwrap().as_ptr()
[INFO] [stdout]     |                     -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:453:58
[INFO] [stdout]     |
[INFO] [stdout] 453 |                     CString::new("u_transform").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:457:52
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     CString::new("tex_u").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:461:52
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     CString::new("tex_v").unwrap().as_ptr()
[INFO] [stdout]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:544:89
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:548:55
[INFO] [stdout]     |
[INFO] [stdout] 548 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:552:55
[INFO] [stdout]     |
[INFO] [stdout] 552 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/visualization/render.rs:559:63
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     CString::new("u_rendered_scene").unwrap().as_ptr()
[INFO] [stdout]     |                     ----------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` 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 `CString` 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: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.79s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.23
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "10a3f4e30e57ca0352e48d5dc922643220c7c998e3cec69663a2e61d53f1d1f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "10a3f4e30e57ca0352e48d5dc922643220c7c998e3cec69663a2e61d53f1d1f2", kill_on_drop: false }`
[INFO] [stdout] 10a3f4e30e57ca0352e48d5dc922643220c7c998e3cec69663a2e61d53f1d1f2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 84298335f845b75269ec8b15c0f90871d0a859949fdeabaee124360c2eeb4449
[INFO] running `Command { std: "docker" "start" "-a" "84298335f845b75269ec8b15c0f90871d0a859949fdeabaee124360c2eeb4449", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::f64::consts::E`
[INFO] [stderr]  --> src/visualization/camera.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::f64::consts::E;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Deref`
[INFO] [stderr]    --> src/visualization/core.rs:201:9
[INFO] [stderr]     |
[INFO] [stderr] 201 |     use std::ops::Deref;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stderr]  --> src/types/message.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stderr]   |          ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stderr]  --> src/types/message.rs:5:26
[INFO] [stderr]   |
[INFO] [stderr] 5 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stderr]   --> src/types/message.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stderr]   --> src/types/message.rs:12:26
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(RustcDecodable, RustcEncodable, Debug)]
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `time_now`
[INFO] [stderr]   --> src/server/core.rs:51:17
[INFO] [stderr]    |
[INFO] [stderr] 51 |             let time_now = Instant::now();
[INFO] [stderr]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_now`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `turn`
[INFO] [stderr]   --> src/visualization/camera.rs:47:35
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stderr]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/visualization/camera.rs:74:13
[INFO] [stderr]    |
[INFO] [stderr] 74 |         let mut result = if height <= 10.0 { 1.0 } else { 0.1 * (height - 10.0) + 1.0 };
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `is_left_pressed` is assigned to, but never used
[INFO] [stderr]   --> src/visualization/core.rs:69:17
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let mut is_left_pressed   = false;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_is_left_pressed` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `is_middle_pressed` is assigned to, but never used
[INFO] [stderr]   --> src/visualization/core.rs:71:17
[INFO] [stderr]    |
[INFO] [stderr] 71 |         let mut is_middle_pressed = false;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_is_middle_pressed` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `window_x` is never read
[INFO] [stderr]    --> src/visualization/core.rs:105:25
[INFO] [stderr]     |
[INFO] [stderr] 105 |                         window_x = x;
[INFO] [stderr]     |                         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `is_left_pressed` is never read
[INFO] [stderr]    --> src/visualization/core.rs:134:39
[INFO] [stderr]     |
[INFO] [stderr] 134 | ...                   Left   => is_left_pressed   = value,
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `is_middle_pressed` is never read
[INFO] [stderr]    --> src/visualization/core.rs:136:39
[INFO] [stderr]     |
[INFO] [stderr] 136 | ...                   Middle => is_middle_pressed = value,
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `x_pos` is never read
[INFO] [stderr]    --> src/visualization/render.rs:485:25
[INFO] [stderr]     |
[INFO] [stderr] 485 |                 let mut x_pos = 0.0;
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/visualization/render.rs:1053:9
[INFO] [stderr]      |
[INFO] [stderr] 1053 |     for mut byte in text.into_bytes() {
[INFO] [stderr]      |         ----^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method `turn_around` is never used
[INFO] [stderr]   --> src/visualization/camera.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Camera {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn turn_around(&mut self, turn: Vector2<f32>) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `config_file` is never read
[INFO] [stderr]   --> src/visualization/configuration.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub struct Configuration {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] 61 |     config_file: String,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:260:89
[INFO] [stderr]     |
[INFO] [stderr] 260 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stderr]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:261:89
[INFO] [stderr]     |
[INFO] [stderr] 261 |                 gl::BindFragDataLocation(program, 1, CString::new("out_index").unwrap().as_ptr());
[INFO] [stderr]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:265:56
[INFO] [stderr]     |
[INFO] [stderr] 265 |                     CString::new("v_pos_xyz").unwrap().as_ptr()
[INFO] [stderr]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:269:55
[INFO] [stderr]     |
[INFO] [stderr] 269 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stderr]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:273:62
[INFO] [stderr]     |
[INFO] [stderr] 273 |                     CString::new("u_texture_bound").unwrap().as_ptr()
[INFO] [stderr]     |                     ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:277:54
[INFO] [stderr]     |
[INFO] [stderr] 277 |                     CString::new("u_model").unwrap().as_ptr()
[INFO] [stderr]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:281:66
[INFO] [stderr]     |
[INFO] [stderr] 281 |                     CString::new("u_camera_projection").unwrap().as_ptr()
[INFO] [stderr]     |                     -------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:285:56
[INFO] [stderr]     |
[INFO] [stderr] 285 |                     CString::new("u_texture").unwrap().as_ptr()
[INFO] [stderr]     |                     ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:289:54
[INFO] [stderr]     |
[INFO] [stderr] 289 |                     CString::new("u_color").unwrap().as_ptr()
[INFO] [stderr]     |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:293:51
[INFO] [stderr]     |
[INFO] [stderr] 293 |                     CString::new("u_id").unwrap().as_ptr()
[INFO] [stderr]     |                     ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:297:68
[INFO] [stderr]     |
[INFO] [stderr] 297 |                     CString::new("u_selection_highlight").unwrap().as_ptr()
[INFO] [stderr]     |                     ---------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:431:89
[INFO] [stderr]     |
[INFO] [stderr] 431 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stderr]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:435:55
[INFO] [stderr]     |
[INFO] [stderr] 435 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stderr]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:439:55
[INFO] [stderr]     |
[INFO] [stderr] 439 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stderr]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:446:60
[INFO] [stderr]     |
[INFO] [stderr] 446 |                     CString::new("u_font_bitmap").unwrap().as_ptr()
[INFO] [stderr]     |                     -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:453:58
[INFO] [stderr]     |
[INFO] [stderr] 453 |                     CString::new("u_transform").unwrap().as_ptr()
[INFO] [stderr]     |                     ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:457:52
[INFO] [stderr]     |
[INFO] [stderr] 457 |                     CString::new("tex_u").unwrap().as_ptr()
[INFO] [stderr]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:461:52
[INFO] [stderr]     |
[INFO] [stderr] 461 |                     CString::new("tex_v").unwrap().as_ptr()
[INFO] [stderr]     |                     ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:544:89
[INFO] [stderr]     |
[INFO] [stderr] 544 |                 gl::BindFragDataLocation(program, 0, CString::new("out_color").unwrap().as_ptr());
[INFO] [stderr]     |                                                      ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:548:55
[INFO] [stderr]     |
[INFO] [stderr] 548 |                     CString::new("v_pos_xy").unwrap().as_ptr()
[INFO] [stderr]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:552:55
[INFO] [stderr]     |
[INFO] [stderr] 552 |                     CString::new("v_tex_uv").unwrap().as_ptr()
[INFO] [stderr]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/visualization/render.rs:559:63
[INFO] [stderr]     |
[INFO] [stderr] 559 |                     CString::new("u_rendered_scene").unwrap().as_ptr()
[INFO] [stderr]     |                     ----------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: `show_and_tell` (lib) generated 40 warnings (run `cargo fix --lib -p show_and_tell` to apply 6 suggestions)
[INFO] [stderr] warning: `show_and_tell` (lib test) generated 40 warnings (40 duplicates)
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/main.rs:17:47
[INFO] [stderr]    |
[INFO] [stderr] 17 |         Err(error)  => Err(String::from(error.description())),
[INFO] [stderr]    |                                               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `show_and_tell` (bin "show_and_tell" test) generated 1 warning
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.23
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/show_and_tell-7852d9037d2e8322)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/show_and_tell-b9020ee95b5fd86d)
[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] [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] [stderr]    Doc-tests show_and_tell
[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" "84298335f845b75269ec8b15c0f90871d0a859949fdeabaee124360c2eeb4449", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84298335f845b75269ec8b15c0f90871d0a859949fdeabaee124360c2eeb4449", kill_on_drop: false }`
[INFO] [stdout] 84298335f845b75269ec8b15c0f90871d0a859949fdeabaee124360c2eeb4449
[INFO] testing michel4ngel0/show_and_tell against beta-2024-01-09 for beta-1.76-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichel4ngel0%2Fshow_and_tell" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/michel4ngel0/show_and_tell on toolchain beta-2024-01-09
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-01-09" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/michel4ngel0/show_and_tell
[INFO] finished tweaking git repo https://github.com/michel4ngel0/show_and_tell
[INFO] tweaked toml for git repo https://github.com/michel4ngel0/show_and_tell written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/michel4ngel0/show_and_tell 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-2024-01-09" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-01-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5182e99c311cf197c581ea851aa13904d8ef3833cb8d9a2ad678c2e20e010e55
[INFO] running `Command { std: "docker" "start" "-a" "5182e99c311cf197c581ea851aa13904d8ef3833cb8d9a2ad678c2e20e010e55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5182e99c311cf197c581ea851aa13904d8ef3833cb8d9a2ad678c2e20e010e55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5182e99c311cf197c581ea851aa13904d8ef3833cb8d9a2ad678c2e20e010e55", kill_on_drop: false }`
[INFO] [stdout] 5182e99c311cf197c581ea851aa13904d8ef3833cb8d9a2ad678c2e20e010e55
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-01-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eada3f4da82939122ebc788d9046185a6a20547eb3eb1950fd5b54add9afcc07
[INFO] running `Command { std: "docker" "start" "-a" "eada3f4da82939122ebc788d9046185a6a20547eb3eb1950fd5b54add9afcc07", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.21
[INFO] [stderr]    Compiling num-traits v0.1.37
[INFO] [stderr]    Compiling siphasher v0.2.2
[INFO] [stderr]    Compiling bitflags v0.5.0
[INFO] [stderr]    Compiling itoa v0.3.1
[INFO] [stderr]    Compiling dtoa v0.4.1
[INFO] [stderr]    Compiling serde v0.9.12
[INFO] [stderr]    Compiling lazy_static v0.2.5
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]    Compiling khronos_api v1.0.0
[INFO] [stderr]    Compiling log v0.3.7
[INFO] [stderr]    Compiling byteorder v1.0.0
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling pkg-config v0.3.9
[INFO] [stderr]    Compiling xml-rs v0.3.6
[INFO] [stderr]    Compiling adler32 v1.0.0
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling lzw v0.10.0
[INFO] [stderr]    Compiling inflate v0.1.1
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling phf_shared v0.7.21
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]    Compiling rand v0.3.15
[INFO] [stderr]    Compiling shared_library v0.1.5
[INFO] [stderr]    Compiling num_cpus v1.3.0
[INFO] [stderr]    Compiling phf v0.7.21
[INFO] [stderr]    Compiling memchr v1.0.1
[INFO] [stderr]    Compiling thread-id v3.0.0
[INFO] [stderr]    Compiling deflate v0.7.5
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling color_quant v1.0.0
[INFO] [stderr]    Compiling thread_local v0.3.3
[INFO] [stderr]    Compiling x11-dl v2.12.0
[INFO] [stderr]    Compiling aho-corasick v0.6.3
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling regex-syntax v0.4.0
[INFO] [stderr]    Compiling tempfile v2.1.5
[INFO] [stderr]    Compiling fs2 v0.2.5
[INFO] [stderr]    Compiling gif v0.9.1
[INFO] [stderr]    Compiling memmap v0.4.0
[INFO] [stderr]    Compiling scoped_threadpool v0.1.7
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling num-integer v0.1.33
[INFO] [stderr]    Compiling num-iter v0.1.33
[INFO] [stderr]    Compiling num-rational v0.1.36
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling rustc-serialize v0.3.23
[INFO] [stderr]    Compiling glob v0.2.11
[INFO] [stderr]    Compiling approx v0.1.1
[INFO] [stderr]    Compiling wayland-scanner v0.7.8
[INFO] [stderr]    Compiling gl_generator v0.5.2
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/rustc-serialize-0.3.23/src/serialize.rs:1155:5
[INFO] [stdout]      |
[INFO] [stdout] 1155 |     fn decode<D: Decoder>(d: &mut D) -> Result<Cow<'static, T>, D::Error> {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]      |     ...so that the type `T` will meet its required lifetime bounds...
[INFO] [stdout]      |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]     --> /rustc/650745ceb2ae60e04f8cd7bfb671fc37239533e4/library/alloc/src/borrow.rs:180:30
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]      |
[INFO] [stdout] 1151 | impl<'a, T: ?Sized + 'static> Decodable for Cow<'a, T>
[INFO] [stdout]      |                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling phf_generator v0.7.21
[INFO] [stderr]    Compiling deque v0.3.1
[INFO] [stderr]    Compiling gl v0.6.1
[INFO] [stderr]    Compiling phf_codegen v0.7.21
[INFO] [stderr]    Compiling rayon v0.6.0
[INFO] [stderr]    Compiling glutin v0.7.4
[INFO] [stderr]    Compiling wayland-client v0.7.8
[INFO] [stderr]    Compiling target_build_utils v0.3.0
[INFO] [stderr]    Compiling regex v0.2.1
[INFO] [stderr]    Compiling png v0.6.2
[INFO] [stderr]    Compiling jpeg-decoder v0.1.11
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0310`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustc-serialize` (lib) due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "eada3f4da82939122ebc788d9046185a6a20547eb3eb1950fd5b54add9afcc07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eada3f4da82939122ebc788d9046185a6a20547eb3eb1950fd5b54add9afcc07", kill_on_drop: false }`
[INFO] [stdout] eada3f4da82939122ebc788d9046185a6a20547eb3eb1950fd5b54add9afcc07
