[INFO] fetching crate bowtie 0.2.2...
[INFO] testing bowtie-0.2.2 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate bowtie 0.2.2 into /workspace/builds/worker-2-tc1/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-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate bowtie 0.2.2 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 32 packages to latest compatible versions
[INFO] [stderr]       Adding png v0.14.1 (available: v0.18.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded gl v0.14.0
[INFO] [stderr]   Downloaded png v0.14.1
[INFO] [stderr]   Downloaded deflate v0.7.20
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0d046898d9367985c97cc8efc191fd1b6dc639d747c5e45528296874e08e8a65
[INFO] running `Command { std: "docker" "start" "-a" "0d046898d9367985c97cc8efc191fd1b6dc639d747c5e45528296874e08e8a65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d046898d9367985c97cc8efc191fd1b6dc639d747c5e45528296874e08e8a65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d046898d9367985c97cc8efc191fd1b6dc639d747c5e45528296874e08e8a65", kill_on_drop: false }`
[INFO] [stdout] 0d046898d9367985c97cc8efc191fd1b6dc639d747c5e45528296874e08e8a65
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 34484d22ba2f68105aea81b8f954767ddcabfa21a88e5934eba67c0387ea7beb
[INFO] running `Command { std: "docker" "start" "-a" "34484d22ba2f68105aea81b8f954767ddcabfa21a88e5934eba67c0387ea7beb", kill_on_drop: false }`
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling inflate v0.4.5
[INFO] [stderr]    Compiling bowtie v0.2.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling png v0.14.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[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: 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] 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]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.14s
[INFO] running `Command { std: "docker" "inspect" "34484d22ba2f68105aea81b8f954767ddcabfa21a88e5934eba67c0387ea7beb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "34484d22ba2f68105aea81b8f954767ddcabfa21a88e5934eba67c0387ea7beb", kill_on_drop: false }`
[INFO] [stdout] 34484d22ba2f68105aea81b8f954767ddcabfa21a88e5934eba67c0387ea7beb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 495caec056d6bd5ba47e44e2f9de12965241162132ac8b883fa57f47fdf79849
[INFO] running `Command { std: "docker" "start" "-a" "495caec056d6bd5ba47e44e2f9de12965241162132ac8b883fa57f47fdf79849", kill_on_drop: false }`
[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: 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] 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]    Compiling bowtie v0.2.2 (/opt/rustwide/workdir)
[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: 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] 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]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.08s
[INFO] running `Command { std: "docker" "inspect" "495caec056d6bd5ba47e44e2f9de12965241162132ac8b883fa57f47fdf79849", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "495caec056d6bd5ba47e44e2f9de12965241162132ac8b883fa57f47fdf79849", kill_on_drop: false }`
[INFO] [stdout] 495caec056d6bd5ba47e44e2f9de12965241162132ac8b883fa57f47fdf79849
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ed300cbf5745e424dfd2e24d853d2cc1e2c22b300b4603d4a3af94bc4afce5dd
[INFO] running `Command { std: "docker" "start" "-a" "ed300cbf5745e424dfd2e24d853d2cc1e2c22b300b4603d4a3af94bc4afce5dd", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `fmt::Display`
[INFO] [stderr]  --> src/gl_utils/gl_translation.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::{fmt::Display, mem};
[INFO] [stderr]   |           ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToGl`
[INFO] [stderr]  --> src/gl_utils/uniform.rs:3:39
[INFO] [stderr]   |
[INFO] [stderr] 3 | use super::gl_translation::{DataType, ToGl};
[INFO] [stderr]   |                                       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/components/collide.rs:138:27
[INFO] [stderr]     |
[INFO] [stderr] 138 |       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stderr]     |                           ^              ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 138 -       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stderr] 138 +       .collect::<Vec<*mut dyn Entity<'d> >>();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SettableUniform`
[INFO] [stderr]  --> src/gl_utils/gl_texture.rs:8:22
[INFO] [stderr]   |
[INFO] [stderr] 8 | use super::uniform::{SettableUniform, UniformInteger};
[INFO] [stderr]   |                      ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `elements` is never read
[INFO] [stderr]  --> src/gl_utils/element_array_buffer.rs:7:3
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct ElementArrayBuffer<T> {
[INFO] [stderr]   |            ------------------ field in this struct
[INFO] [stderr] 6 |   pub data_type: DataType,
[INFO] [stderr] 7 |   elements: Vec<T>,
[INFO] [stderr]   |   ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `draw` is never used
[INFO] [stderr]   --> src/gl_utils/element_array_buffer.rs:47:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl<T> ElementArrayBuffer<T> {
[INFO] [stderr]    | ----------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 47 |   pub fn draw(&self, mode: DrawingMode) {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pull_errors` is never used
[INFO] [stderr]   --> src/gl_utils/gl_error_reader.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn pull_errors() {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `debug_message_callback` is never used
[INFO] [stderr]   --> src/gl_utils/gl_error_reader.rs:61:20
[INFO] [stderr]    |
[INFO] [stderr] 61 | extern "system" fn debug_message_callback(
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_debug_callback` is never used
[INFO] [stderr]   --> src/gl_utils/gl_error_reader.rs:88:8
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn init_debug_callback() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UniformFloatVector` is never constructed
[INFO] [stderr]   --> src/gl_utils/uniform.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct UniformFloatVector {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/gl_utils/uniform.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl UniformFloatVector {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] 18 |   pub fn new(name: &str, count: i8, values: Vec<f32>) -> UniformFloatVector {
[INFO] [stderr]    |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `data_type` is never read
[INFO] [stderr]   --> src/gl_utils/uniform.rs:57:3
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct UniformInteger {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 57 |   data_type: DataType,
[INFO] [stderr]    |   ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UniformMatrixFloat` is never constructed
[INFO] [stderr]   --> src/gl_utils/uniform.rs:82:12
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub struct UniformMatrixFloat {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/gl_utils/uniform.rs:89:10
[INFO] [stderr]    |
[INFO] [stderr] 88 | impl UniformMatrixFloat {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] 89 |   pub fn new(name: &str, value: Matrix<f32>) -> UniformMatrixFloat {
[INFO] [stderr]    |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `data_type` and `vertices` are never read
[INFO] [stderr]  --> src/gl_utils/vertex_array_buffer.rs:7:3
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct VertexArrayBuffer<T> {
[INFO] [stderr]   |            ----------------- fields in this struct
[INFO] [stderr] 6 |   id: u32,
[INFO] [stderr] 7 |   data_type: DataType,
[INFO] [stderr]   |   ^^^^^^^^^
[INFO] [stderr] 8 |   vertices: Vec<T>,
[INFO] [stderr]   |   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_vertices_len` and `draw` are never used
[INFO] [stderr]   --> src/gl_utils/vertex_array_buffer.rs:34:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl<T> VertexArrayBuffer<T> {
[INFO] [stderr]    | ---------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 34 |   pub fn get_vertices_len(&self) -> usize {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |   pub fn draw(&self, drawing_mode: DrawingMode) {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `EventComponent` is never constructed
[INFO] [stderr]  --> src/components/event.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct EventComponent<'s> {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `push_message` are never used
[INFO] [stderr]   --> src/components/event.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl<'s> EventComponent<'s> {
[INFO] [stderr]    | --------------------------- associated items in this implementation
[INFO] [stderr] 10 |   pub fn new() -> EventComponent<'s> {
[INFO] [stderr]    |          ^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |   pub fn push_message(&mut self, entity: *mut dyn Entity<'s>, message: Message) {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]    --> src/bowtie/controller.rs:107:65
[INFO] [stderr]     |
[INFO] [stderr] 107 |     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stderr]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stderr] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stderr]     |
[INFO] [stderr] 107 -     let pos_option = self.entities.iter().position(|entity_ref| entity_ref.to_owned() == entity.to_owned());
[INFO] [stderr] 107 +     let pos_option = self.entities.iter().position(|entity_ref| std::ptr::addr_eq(entity_ref.to_owned(), entity.to_owned()));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]    --> src/components/collide.rs:143:10
[INFO] [stderr]     |
[INFO] [stderr] 143 |         if other_entity.as_ref().unwrap() as *const _
[INFO] [stderr]     |  __________^
[INFO] [stderr] 144 | |         == entity.as_ref().unwrap() as *const _
[INFO] [stderr]     | |_______________________________________________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stderr]     |
[INFO] [stderr] 143 -       if other_entity.as_ref().unwrap() as *const _
[INFO] [stderr] 143 +       if std::ptr::addr_eq(other_entity.as_ref().unwrap() as *const _, entity.as_ref().unwrap() as *const _)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]    --> src/components/collide.rs:175:45
[INFO] [stderr]     |
[INFO] [stderr] 175 |         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stderr]     |
[INFO] [stderr] 175 -         .position(|(ex_collided_entity, _)| *ex_collided_entity == other_entity);
[INFO] [stderr] 175 +         .position(|(ex_collided_entity, _)| std::ptr::addr_eq(*ex_collided_entity, other_entity));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `bowtie` (lib) generated 21 warnings (run `cargo fix --lib -p bowtie` to apply 3 suggestions)
[INFO] [stderr] warning: `bowtie` (lib test) generated 21 warnings (21 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bowtie-72226d909fbe64fb)
[INFO] [stderr]    Doc-tests bowtie
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test math::test::matrix_tests::matrix_2x1_dot_1x2_ok ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_3x3_determinant ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_2x3_dot_3x2_ok ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_3x3_dot_3x3_ok ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_4x4_determinant ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_5x5_determinant ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_identity ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_matrix_add_bad ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_matrix_add_ok ... ok
[INFO] [stdout] test math::test::matrix_tests::scalar_matrix_multiply_bad ... ok
[INFO] [stdout] test math::test::matrix_tests::scalar_matrix_multiply_ok ... ok
[INFO] [stdout] test math::test::trig_tests::test_get_cos ... ok
[INFO] [stdout] test math::test::trig_tests::test_get_factorial ... ok
[INFO] [stdout] test math::test::trig_tests::test_get_radian ... ok
[INFO] [stdout] test math::test::trig_tests::test_get_sin ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_2x2_determinant ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_determinant_validates - should panic ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_dot_validates - should panic ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_matrix_add_validation - should panic ... ok
[INFO] [stdout] test math::test::matrix_tests::matrix_creation_validates - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/components/collide.rs:138:27
[INFO] [stderr]     |
[INFO] [stderr] 138 |       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stderr]     |                           ^              ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 138 -       .collect::<Vec<*mut (dyn Entity<'d>)>>();
[INFO] [stderr] 138 +       .collect::<Vec<*mut dyn Entity<'d> >>();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[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" "ed300cbf5745e424dfd2e24d853d2cc1e2c22b300b4603d4a3af94bc4afce5dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed300cbf5745e424dfd2e24d853d2cc1e2c22b300b4603d4a3af94bc4afce5dd", kill_on_drop: false }`
[INFO] [stdout] ed300cbf5745e424dfd2e24d853d2cc1e2c22b300b4603d4a3af94bc4afce5dd
