[INFO] fetching crate bowtie 0.2.2...
[INFO] checking bowtie-0.2.2 against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] extracting crate bowtie 0.2.2 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate bowtie 0.2.2
[INFO] finished tweaking crates.io crate bowtie 0.2.2
[INFO] tweaked toml for crates.io crate bowtie 0.2.2 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate bowtie 0.2.2 on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 31 packages to highest compatible versions
[INFO] [stderr]       Adding png v0.14.1 (available: v0.18.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | homepage = "https://github.com/devceline/bowtie_game_engine"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 | repository = "https://github.com/devceline/bowtie_game_engine"
[INFO] [stderr]    |              -------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `bowtie` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34
[INFO] running `Command { std: "docker" "start" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | homepage = "https://github.com/devceline/bowtie_game_engine"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 | repository = "https://github.com/devceline/bowtie_game_engine"
[INFO] [stderr]    |              -------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `bowtie` (manifest) generated 1 warning
[INFO] [stderr]     Checking futures-core v0.3.34
[INFO] [stderr]     Checking futures-sink v0.3.34
[INFO] [stderr]     Checking futures-io v0.3.34
[INFO] [stderr]    Compiling bowtie v0.2.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking futures-channel v0.3.34
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]     Checking futures-executor v0.3.34
[INFO] [stderr]     Checking futures v0.3.34
[INFO] [stdout] warning: unused import: `fmt::Display`
[INFO] [stdout]  --> src/gl_utils/gl_translation.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt::Display, mem};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToGl`
[INFO] [stdout]  --> src/gl_utils/uniform.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::gl_translation::{DataType, ToGl};
[INFO] [stdout]   |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/components/collide.rs:138:27
[INFO] [stdout]     |
[INFO] [stdout] 138 |       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stdout]     |                           ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stdout] 138 +       .collect::<Vec<*mut dyn Entity<'d>>>();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::Display`
[INFO] [stdout]  --> src/gl_utils/gl_translation.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt::Display, mem};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToGl`
[INFO] [stdout]  --> src/gl_utils/uniform.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::gl_translation::{DataType, ToGl};
[INFO] [stdout]   |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/components/collide.rs:138:27
[INFO] [stdout]     |
[INFO] [stdout] 138 |       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stdout]     |                           ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stdout] 138 +       .collect::<Vec<*mut dyn Entity<'d>>>();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SettableUniform`
[INFO] [stdout]  --> src/gl_utils/gl_texture.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::uniform::{SettableUniform, UniformInteger};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SettableUniform`
[INFO] [stdout]  --> src/gl_utils/gl_texture.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::uniform::{SettableUniform, UniformInteger};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `elements` is never read
[INFO] [stdout]  --> src/gl_utils/element_array_buffer.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ElementArrayBuffer<T> {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 6 |   pub data_type: DataType,
[INFO] [stdout] 7 |   elements: Vec<T>,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/gl_utils/element_array_buffer.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> ElementArrayBuffer<T> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |   pub fn draw(&self, mode: DrawingMode) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pull_errors` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn pull_errors() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_message_callback` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 | extern "system" fn debug_message_callback(
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_debug_callback` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn init_debug_callback() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniformFloatVector` is never constructed
[INFO] [stdout]   --> src/gl_utils/uniform.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct UniformFloatVector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gl_utils/uniform.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl UniformFloatVector {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 18 |   pub fn new(name: &str, count: i8, values: Vec<f32>) -> UniformFloatVector {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_type` is never read
[INFO] [stdout]   --> src/gl_utils/uniform.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct UniformInteger {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |   data_type: DataType,
[INFO] [stdout]    |   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniformMatrixFloat` is never constructed
[INFO] [stdout]   --> src/gl_utils/uniform.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct UniformMatrixFloat {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gl_utils/uniform.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl UniformMatrixFloat {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 89 |   pub fn new(name: &str, value: Matrix<f32>) -> UniformMatrixFloat {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data_type` and `vertices` are never read
[INFO] [stdout]  --> src/gl_utils/vertex_array_buffer.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct VertexArrayBuffer<T> {
[INFO] [stdout]   |            ----------------- fields in this struct
[INFO] [stdout] 6 |   id: u32,
[INFO] [stdout] 7 |   data_type: DataType,
[INFO] [stdout]   |   ^^^^^^^^^
[INFO] [stdout] 8 |   vertices: Vec<T>,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_vertices_len` and `draw` are never used
[INFO] [stdout]   --> src/gl_utils/vertex_array_buffer.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> VertexArrayBuffer<T> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |   pub fn get_vertices_len(&self) -> usize {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |   pub fn draw(&self, drawing_mode: DrawingMode) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventComponent` is never constructed
[INFO] [stdout]  --> src/components/event.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct EventComponent<'s> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_message` are never used
[INFO] [stdout]   --> src/components/event.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<'s> EventComponent<'s> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new() -> EventComponent<'s> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn push_message(&mut self, entity: *mut dyn Entity<'s>, message: Message) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/bowtie/controller.rs:107:65
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 107 -     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stdout] 107 +     let pos_option = self.entities.iter().position(|entity_ref| std::ptr::addr_eq(entity_ref.to_owned(), entity.to_owned()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/components/collide.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 |         if other_entity.as_ref().unwrap() as *const _
[INFO] [stdout]     |  __________^
[INFO] [stdout] 144 | |         == entity.as_ref().unwrap() as *const _
[INFO] [stdout]     | |_______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 143 -       if other_entity.as_ref().unwrap() as *const _
[INFO] [stdout] 144 -         == entity.as_ref().unwrap() as *const _
[INFO] [stdout] 143 +       if std::ptr::addr_eq(other_entity.as_ref().unwrap() as *const _, entity.as_ref().unwrap() as *const _)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/components/collide.rs:175:45
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stdout] 175 +         .position(|(ex_collided_entity, _)| std::ptr::addr_eq(*ex_collided_entity, other_entity));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `elements` is never read
[INFO] [stdout]  --> src/gl_utils/element_array_buffer.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ElementArrayBuffer<T> {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 6 |   pub data_type: DataType,
[INFO] [stdout] 7 |   elements: Vec<T>,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/gl_utils/element_array_buffer.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> ElementArrayBuffer<T> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |   pub fn draw(&self, mode: DrawingMode) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pull_errors` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn pull_errors() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_message_callback` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 | extern "system" fn debug_message_callback(
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_debug_callback` is never used
[INFO] [stdout]   --> src/gl_utils/gl_error_reader.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn init_debug_callback() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniformFloatVector` is never constructed
[INFO] [stdout]   --> src/gl_utils/uniform.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct UniformFloatVector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gl_utils/uniform.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl UniformFloatVector {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 18 |   pub fn new(name: &str, count: i8, values: Vec<f32>) -> UniformFloatVector {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_type` is never read
[INFO] [stdout]   --> src/gl_utils/uniform.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct UniformInteger {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |   data_type: DataType,
[INFO] [stdout]    |   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniformMatrixFloat` is never constructed
[INFO] [stdout]   --> src/gl_utils/uniform.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct UniformMatrixFloat {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gl_utils/uniform.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl UniformMatrixFloat {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 89 |   pub fn new(name: &str, value: Matrix<f32>) -> UniformMatrixFloat {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data_type` and `vertices` are never read
[INFO] [stdout]  --> src/gl_utils/vertex_array_buffer.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct VertexArrayBuffer<T> {
[INFO] [stdout]   |            ----------------- fields in this struct
[INFO] [stdout] 6 |   id: u32,
[INFO] [stdout] 7 |   data_type: DataType,
[INFO] [stdout]   |   ^^^^^^^^^
[INFO] [stdout] 8 |   vertices: Vec<T>,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_vertices_len` and `draw` are never used
[INFO] [stdout]   --> src/gl_utils/vertex_array_buffer.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> VertexArrayBuffer<T> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |   pub fn get_vertices_len(&self) -> usize {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |   pub fn draw(&self, drawing_mode: DrawingMode) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventComponent` is never constructed
[INFO] [stdout]  --> src/components/event.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct EventComponent<'s> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_message` are never used
[INFO] [stdout]   --> src/components/event.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<'s> EventComponent<'s> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new() -> EventComponent<'s> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn push_message(&mut self, entity: *mut dyn Entity<'s>, message: Message) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/bowtie/controller.rs:107:65
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 107 -     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stdout] 107 +     let pos_option = self.entities.iter().position(|entity_ref| std::ptr::addr_eq(entity_ref.to_owned(), entity.to_owned()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/components/collide.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 |         if other_entity.as_ref().unwrap() as *const _
[INFO] [stdout]     |  __________^
[INFO] [stdout] 144 | |         == entity.as_ref().unwrap() as *const _
[INFO] [stdout]     | |_______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 143 -       if other_entity.as_ref().unwrap() as *const _
[INFO] [stdout] 144 -         == entity.as_ref().unwrap() as *const _
[INFO] [stdout] 143 +       if std::ptr::addr_eq(other_entity.as_ref().unwrap() as *const _, entity.as_ref().unwrap() as *const _)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]    --> src/components/collide.rs:175:45
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stdout] 175 +         .position(|(ex_collided_entity, _)| std::ptr::addr_eq(*ex_collided_entity, other_entity));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `futures`
[INFO] [stderr]  --> Cargo.toml:1:15
[INFO] [stderr]   |
[INFO] [stderr] 1 | [dependencies.futures]
[INFO] [stderr]   |               ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `futures`
[INFO] [stderr] warning: `bowtie` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.39s
[INFO] running `Command { std: "docker" "inspect" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34", kill_on_drop: false }`
[INFO] [stdout] 92f71f2ea86924d2a0aeadee8155b221fc07529e6a0c342f8786002229268d34
