[INFO] cloning repository https://github.com/NotAWiz4rd/rust-renderer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NotAWiz4rd/rust-renderer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNotAWiz4rd%2Frust-renderer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNotAWiz4rd%2Frust-renderer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e3ae324d3b68c980007dac0b58f9bbd6b35e0b13
[INFO] checking NotAWiz4rd/rust-renderer against master#656ccbe796ff98def9b555c118e1620c5389e3b2 for pr-133502-24
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNotAWiz4rd%2Frust-renderer" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NotAWiz4rd/rust-renderer
[INFO] finished tweaking git repo https://github.com/NotAWiz4rd/rust-renderer
[INFO] tweaked toml for git repo https://github.com/NotAWiz4rd/rust-renderer written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NotAWiz4rd/rust-renderer on toolchain 656ccbe796ff98def9b555c118e1620c5389e3b2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+656ccbe796ff98def9b555c118e1620c5389e3b2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NotAWiz4rd/rust-renderer 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" "+656ccbe796ff98def9b555c118e1620c5389e3b2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31
[INFO] running `Command { std: "docker" "start" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31", 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" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31" "/opt/rustwide/cargo-home/bin/cargo" "+656ccbe796ff98def9b555c118e1620c5389e3b2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31", 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" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31" "/opt/rustwide/cargo-home/bin/cargo" "+656ccbe796ff98def9b555c118e1620c5389e3b2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking renderer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::experiments::clock::render_clock`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::experiments::clock::render_clock;
[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: `crate::experiments::projectile::run_projectile_simulation`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::experiments::projectile::run_projectile_simulation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ORIGIN`
[INFO] [stdout]  --> src/ray.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tuple::{dot_product, ORIGIN, Tuple};
[INFO] [stdout]   |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::experiments::clock::render_clock`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::experiments::clock::render_clock;
[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: `crate::experiments::projectile::run_projectile_simulation`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::experiments::projectile::run_projectile_simulation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ORIGIN`
[INFO] [stdout]  --> src/ray.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tuple::{dot_product, ORIGIN, Tuple};
[INFO] [stdout]   |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Object`
[INFO] [stdout]   --> src/main.rs:86:30
[INFO] [stdout]    |
[INFO] [stdout] 86 |         use crate::objects::{Object, sphere};
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `canvas` is never read
[INFO] [stdout]   --> src/experiments.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut canvas = canvas(canvas_pixels, canvas_pixels);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 26 |         canvas = calculate_canvas(canvas_pixels, canvas_pixels, pixel_size, half, wall_z, ray_origin, sphere);
[INFO] [stdout]    |         ------ `canvas` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZERO_VECTOR` is never used
[INFO] [stdout]  --> src/tuple.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ZERO_VECTOR: Tuple = Tuple { x: 0.0, y: 0.0, z: 0.0, w: 0.0 };
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector` is never used
[INFO] [stdout]   --> src/tuple.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn vector(x: f64, y: f64, z: f64) -> Tuple {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_i` is never used
[INFO] [stdout]   --> src/tuple.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn vector_i(x: i32, y: i32, z: i32) -> Tuple {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross_product` is never used
[INFO] [stdout]   --> src/tuple.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn cross_product(v1: Tuple, v2: Tuple) -> Tuple {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_point` and `is_vector` are never used
[INFO] [stdout]   --> src/tuple.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Tuple {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 62 |     pub fn is_point(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn is_vector(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE` is never used
[INFO] [stdout]  --> src/colour.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const WHITE: Colour = Colour { red: 1.0, green: 1.0, blue: 1.0 };
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE` is never used
[INFO] [stdout]  --> src/colour.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const BLUE: Colour = Colour { red: 0.0, green: 0.0, blue: 1.0 };
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `colour` is never used
[INFO] [stdout]   --> src/colour.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn colour(red: f64, green: f64, blue: f64) -> Colour {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_clock` is never used
[INFO] [stdout]    --> src/experiments.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn render_clock() {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_projectile_simulation` is never used
[INFO] [stdout]    --> src/experiments.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn run_projectile_simulation() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Projectile` is never constructed
[INFO] [stdout]    --> src/experiments.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 |     struct Projectile {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]    --> src/experiments.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     struct Environment {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tick` is never used
[INFO] [stdout]    --> src/experiments.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn tick(environment: &Environment, projectile: &mut Projectile) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `radians_i` is never used
[INFO] [stdout]   --> src/util.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn radians_i(degrees: i32) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `radians` is never used
[INFO] [stdout]   --> src/util.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn radians(degrees: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_coordinate` is never used
[INFO] [stdout]   --> src/util.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn normalize_coordinate(coordinate: f64, canvas_size: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shearing_i` is never used
[INFO] [stdout]   --> src/matrix.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn shearing_i(x_y: i32, x_z: i32, y_x: i32, y_z: i32, z_x: i32, z_y: i32) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shearing` is never used
[INFO] [stdout]   --> src/matrix.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn shearing(x_y: f64, x_z: f64, y_x: f64, y_z: f64, z_x: f64, z_y: f64) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotation_x` is never used
[INFO] [stdout]   --> src/matrix.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn rotation_x(rotation: f64) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotation_y` is never used
[INFO] [stdout]   --> src/matrix.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn rotation_y(rotation: f64) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translation_i` is never used
[INFO] [stdout]   --> src/matrix.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn translation_i(x: i32, y: i32, z: i32) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translation` is never used
[INFO] [stdout]   --> src/matrix.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn translation(x: f64, y: f64, z: f64) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scaling_i` is never used
[INFO] [stdout]   --> src/matrix.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn scaling_i(x: i32, y: i32, z: i32) -> Matrix<4> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `transpose` is never used
[INFO] [stdout]    --> src/matrix.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl<const SIZE: usize> Matrix<SIZE> {
[INFO] [stdout]     | ------------------------------------ method in this implementation
[INFO] [stdout] 103 |     pub fn transpose(self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rotate_x`, `rotate_y`, and `translate` are never used
[INFO] [stdout]    --> src/matrix.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Matrix<4> {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 141 |     pub fn rotate_x(self, rotation: f64) -> Matrix<4> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn rotate_y(self, rotation: f64) -> Matrix<4> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn translate(self, x: f64, y: f64, z: f64) -> Matrix<4> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `invert` is never used
[INFO] [stdout]    --> src/matrix.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl Matrix<3> {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 205 |     pub fn invert(&self) -> Option<Matrix<3>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `position` is never used
[INFO] [stdout]   --> src/ray.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Ray {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 26 |     pub fn position(&self, time: f64) -> Tuple {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `normal_at` is never used
[INFO] [stdout]   --> src/objects.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Object {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn normal_at(&self, point: Tuple) -> Tuple {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `canvas` is never read
[INFO] [stdout]   --> src/experiments.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut canvas = canvas(canvas_pixels, canvas_pixels);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 26 |         canvas = calculate_canvas(canvas_pixels, canvas_pixels, pixel_size, half, wall_z, ray_origin, sphere);
[INFO] [stdout]    |         ------ `canvas` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE` is never used
[INFO] [stdout]  --> src/colour.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const WHITE: Colour = Colour { red: 1.0, green: 1.0, blue: 1.0 };
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE` is never used
[INFO] [stdout]  --> src/colour.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const BLUE: Colour = Colour { red: 0.0, green: 0.0, blue: 1.0 };
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_clock` is never used
[INFO] [stdout]    --> src/experiments.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn render_clock() {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_projectile_simulation` is never used
[INFO] [stdout]    --> src/experiments.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn run_projectile_simulation() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Projectile` is never constructed
[INFO] [stdout]    --> src/experiments.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 |     struct Projectile {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]    --> src/experiments.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     struct Environment {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tick` is never used
[INFO] [stdout]    --> src/experiments.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn tick(environment: &Environment, projectile: &mut Projectile) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `radians_i` is never used
[INFO] [stdout]   --> src/util.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn radians_i(degrees: i32) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `radians` is never used
[INFO] [stdout]   --> src/util.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn radians(degrees: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_coordinate` is never used
[INFO] [stdout]   --> src/util.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn normalize_coordinate(coordinate: f64, canvas_size: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate_y` is never used
[INFO] [stdout]    --> src/matrix.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Matrix<4> {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn rotate_y(self, rotation: f64) -> Matrix<4> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `invert` is never used
[INFO] [stdout]    --> src/matrix.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl Matrix<3> {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 205 |     pub fn invert(&self) -> Option<Matrix<3>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.53s
[INFO] running `Command { std: "docker" "inspect" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31", kill_on_drop: false }`
[INFO] [stdout] 69647c02129b6280e191a3ad488aa216b3d7526b0314ee9701febe87566c3b31
