[INFO] cloning repository https://github.com/hrou0003/stingray
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hrou0003/stingray" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhrou0003%2Fstingray", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhrou0003%2Fstingray'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ebcbdfd4e25286a02c9acd758b20e7bdd8a834d3
[INFO] testing hrou0003/stingray against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhrou0003%2Fstingray" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hrou0003/stingray
[INFO] finished tweaking git repo https://github.com/hrou0003/stingray
[INFO] tweaked toml for git repo https://github.com/hrou0003/stingray written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hrou0003/stingray on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hrou0003/stingray 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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 442364e9293090d81ebda4a79c02ea6cbc00d7509d083fab83c40eb838576d52
[INFO] running `Command { std: "docker" "start" "-a" "442364e9293090d81ebda4a79c02ea6cbc00d7509d083fab83c40eb838576d52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "442364e9293090d81ebda4a79c02ea6cbc00d7509d083fab83c40eb838576d52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "442364e9293090d81ebda4a79c02ea6cbc00d7509d083fab83c40eb838576d52", kill_on_drop: false }`
[INFO] [stdout] 442364e9293090d81ebda4a79c02ea6cbc00d7509d083fab83c40eb838576d52
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] da29f77c425dbea7eebae28283bd969ed0cfd5b86ad494bdc75464014c4de166
[INFO] running `Command { std: "docker" "start" "-a" "da29f77c425dbea7eebae28283bd969ed0cfd5b86ad494bdc75464014c4de166", kill_on_drop: false }`
[INFO] [stderr]    Compiling stingray v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/canvas/scene_object.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use super::*;
[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 imports: `Material`, `PointLight`, `color::Color`, `matrix::Matrix`, `objects::geometry::Geometry`, `objects::sphere::Sphere`, `point::Point`, `ray::Ray`, `texture::Texture`, and `vector::Vector`
[INFO] [stdout]   --> src/canvas/scene_object.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         color::Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 19 |         geo::{
[INFO] [stdout] 20 |             matrix::Matrix, objects::geometry::Geometry, objects::sphere::Sphere, point::Point,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 21 |             ray::Ray, vector::Vector,
[INFO] [stdout]    |             ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |         },
[INFO] [stdout] 23 |         lighting::{texture::Texture, Material, PointLight},
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]  --> src/geo/ray.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Mul};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `objects::sphere::Sphere`
[INFO] [stdout]  --> src/lighting/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     geo::{objects::sphere::Sphere, point::Point},
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::traits::ApproxEq`
[INFO] [stdout]  --> src/test/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::traits::ApproxEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test;
[INFO] [stdout]   | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light`
[INFO] [stdout]   --> src/canvas/mod.rs:50:33
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_light`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/geo/matrix.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut polarities = String::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `polarities`
[INFO] [stdout]    --> src/geo/matrix.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut polarities = String::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_polarities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `digits`
[INFO] [stdout]    --> src/geo/matrix.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn round(&self, digits: usize) -> Matrix {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_digits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Canvas` is never constructed
[INFO] [stdout]  --> src/canvas/mod.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Canvas {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_pixel`, `to_ppm`, `save_ppm`, `draw_point`, and `add_light` are never used
[INFO] [stdout]   --> src/canvas/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Canvas {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(width: u32, height: u32) -> Canvas {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn set_pixel(&mut self, x: u32, y: u32, color: Color) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn to_ppm(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn save_ppm(&self, path: &str) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn draw_point(&mut self, point: Point, color: Color) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneObject` is never constructed
[INFO] [stdout]  --> src/canvas/scene_object.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SceneObject<G: Geometry, T: Texture> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/canvas/scene_object.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<G: Geometry, T: Texture> SceneObject<G, T> {
[INFO] [stdout]    | ----------------------------------------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(geometry: G, material: T) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]  --> src/color/mod.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Color {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `black` are never used
[INFO] [stdout]   --> src/color/mod.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Color {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 11 |     pub fn new(r: f64, g: f64, b: f64) -> Color {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn black() -> Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rotation` is never used
[INFO] [stdout]  --> src/geo/matrix.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Rotation {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Matrix` is never constructed
[INFO] [stdout]   --> src/geo/matrix.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Matrix {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/geo/matrix.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Matrix {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(rows: usize, cols: usize) -> Matrix {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn identity() -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn translation(x: f64, y: f64, z: f64) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn scaling(x: f64, y: f64, z: f64) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn rotation(angle: f64, axis: Rotation) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn shearing(x_y: f64, x_z: f64, y_x: f64, y_z: f64, z_x: f64, z_y: f64) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn from_vec(data: Vec<Vec<f64>>) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn to_vec(&self) -> Vec<Vec<f64>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn transpose(&self) -> Result<Matrix, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn determinant(&self) -> Result<f64, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn sub_determinant(matrix: Vec<Vec<f64>>) -> Result<f64, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn sub_matrix(matrix: &Vec<Vec<f64>>, row: usize, col: usize) -> Vec<Vec<f64>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn cofactor(&self) -> Result<Matrix, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn inverse(&self) -> Result<Matrix, String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn round(&self, digits: usize) -> Matrix {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Geometry` is never used
[INFO] [stdout]  --> src/geo/objects/geometry.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Geometry {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Hit` is never used
[INFO] [stdout]  --> src/geo/objects/hit.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Hit {
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sphere` is never constructed
[INFO] [stdout]  --> src/geo/objects/sphere.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Sphere {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `unit_sphere` are never used
[INFO] [stdout]   --> src/geo/objects/sphere.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Sphere {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] 14 |     pub fn new(center: Point, radius: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn unit_sphere() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/geo/point.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Point {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `norm` are never used
[INFO] [stdout]   --> src/geo/point.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(x: f64, y: f64, z: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn norm(&self) -> f64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ray` is never constructed
[INFO] [stdout]  --> src/geo/ray.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Ray {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `point_at`, and `evaluate` are never used
[INFO] [stdout]   --> src/geo/ray.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Ray {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(origin: Point, direction: Vector) -> Ray {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn point_at(&self, distance: f64) -> Point {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn evaluate(&self, t: f64) -> Point {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector` is never constructed
[INFO] [stdout]  --> src/geo/vector.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Vector {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `mag`, `dot`, `norm`, `cross`, and `reflect` are never used
[INFO] [stdout]   --> src/geo/vector.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Vector {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(x: f64, y: f64, z: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn mag(&self) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn dot(&self, other: Self) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn norm(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn cross(&self, other: Self) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn reflect(&self, n: Vector) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PointLight` is never constructed
[INFO] [stdout]  --> src/lighting/mod.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PointLight {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lighting/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PointLight {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(position: Point, color: Color) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Material` is never constructed
[INFO] [stdout]   --> src/lighting/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Material {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lighting/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Material {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(color: Color, ambient: f32, diffuse: f32, specular: f32, shininess: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Texture` is never used
[INFO] [stdout]  --> src/lighting/texture.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Texture {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Projectile` is never constructed
[INFO] [stdout]  --> src/test/utils.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Projectile {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]  --> src/test/utils.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Environment {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `tick` are never used
[INFO] [stdout]   --> src/test/utils.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(gravity: Vector, wind: Vector, position: Point, velocity: Vector) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn tick(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ApproxEq` is never used
[INFO] [stdout]  --> src/traits/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait ApproxEq {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SpecificRound` is never used
[INFO] [stdout]   --> src/traits/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait SpecificRound {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.51s
[INFO] running `Command { std: "docker" "inspect" "da29f77c425dbea7eebae28283bd969ed0cfd5b86ad494bdc75464014c4de166", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da29f77c425dbea7eebae28283bd969ed0cfd5b86ad494bdc75464014c4de166", kill_on_drop: false }`
[INFO] [stdout] da29f77c425dbea7eebae28283bd969ed0cfd5b86ad494bdc75464014c4de166
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 324b17712950ac91afc36f8a85efdf9e35b2e7eb15c634280e7cd8abf84a4372
[INFO] running `Command { std: "docker" "start" "-a" "324b17712950ac91afc36f8a85efdf9e35b2e7eb15c634280e7cd8abf84a4372", kill_on_drop: false }`
[INFO] [stderr]    Compiling stingray v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `PointLight`, `matrix::Matrix`, `objects::geometry::Geometry`, `ray::Ray`, `texture::Texture`, and `vector::Vector`
[INFO] [stdout]   --> src/canvas/scene_object.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             matrix::Matrix, objects::geometry::Geometry, objects::sphere::Sphere, point::Point,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |             ray::Ray, vector::Vector,
[INFO] [stdout]    |             ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |         },
[INFO] [stdout] 23 |         lighting::{texture::Texture, Material, PointLight},
[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: `Mul`
[INFO] [stdout]  --> src/geo/ray.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Mul};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> src/geo/test.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use super::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `objects::sphere::Sphere`
[INFO] [stdout]  --> src/lighting/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     geo::{objects::sphere::Sphere, point::Point},
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::traits::ApproxEq`
[INFO] [stdout]  --> src/test/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::traits::ApproxEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scene_object`
[INFO] [stdout]   --> src/canvas/scene_object.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let scene_object = SceneObject::new(sphere, material);
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scene_object`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light`
[INFO] [stdout]   --> src/canvas/mod.rs:50:33
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/geo/matrix.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut polarities = String::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `polarities`
[INFO] [stdout]    --> src/geo/matrix.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut polarities = String::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_polarities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `digits`
[INFO] [stdout]    --> src/geo/matrix.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn round(&self, digits: usize) -> Matrix {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_digits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/test/utils.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut sphere = Sphere::new(Point::new(150., 150., 50.0), 50.0);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lights` is never read
[INFO] [stdout]  --> src/canvas/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Canvas {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub lights: Vec<PointLight>,
[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 `add_light` is never used
[INFO] [stdout]   --> src/canvas/mod.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Canvas {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `geometry` and `material` are never read
[INFO] [stdout]  --> src/canvas/scene_object.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SceneObject<G: Geometry, T: Texture> {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 5 |     pub geometry: G,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 6 |     pub material: T,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `X` and `Y` are never constructed
[INFO] [stdout]  --> src/geo/matrix.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Rotation {
[INFO] [stdout]   |          -------- variants in this enum
[INFO] [stdout] 6 |     X,
[INFO] [stdout]   |     ^
[INFO] [stdout] 7 |     Y,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `shearing` is never used
[INFO] [stdout]   --> src/geo/matrix.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Matrix {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn shearing(x_y: f64, x_z: f64, y_x: f64, y_z: f64, z_x: f64, z_y: f64) -> Matrix {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `norm` is never used
[INFO] [stdout]   --> src/geo/point.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Point {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn norm(&self) -> f64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/geo/ray.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Ray {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn evaluate(&self, t: f64) -> Point {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position` and `color` are never read
[INFO] [stdout]   --> src/lighting/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct PointLight {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 10 |     pub position: Point,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     pub color: Color,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lighting/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PointLight {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(position: Point, color: Color) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `color`, `ambient`, `diffuse`, `specular`, and `shininess` are never read
[INFO] [stdout]   --> src/lighting/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Material {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 22 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     ambient: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     diffuse: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 25 |     specular: f32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     shininess: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Material` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_material` and `get_material` are never used
[INFO] [stdout]  --> src/lighting/texture.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Texture {
[INFO] [stdout]   |           ------- methods in this trait
[INFO] [stdout] 4 |     fn set_material(&mut self, material: Material);
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 5 |     fn get_material(&self) -> Material;
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.82s
[INFO] running `Command { std: "docker" "inspect" "324b17712950ac91afc36f8a85efdf9e35b2e7eb15c634280e7cd8abf84a4372", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "324b17712950ac91afc36f8a85efdf9e35b2e7eb15c634280e7cd8abf84a4372", kill_on_drop: false }`
[INFO] [stdout] 324b17712950ac91afc36f8a85efdf9e35b2e7eb15c634280e7cd8abf84a4372
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 7dd1932955aafdf4ee3119d34d5f2073201b1c659877c1824db4cd2adfdf6309
[INFO] running `Command { std: "docker" "start" "-a" "7dd1932955aafdf4ee3119d34d5f2073201b1c659877c1824db4cd2adfdf6309", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `PointLight`, `matrix::Matrix`, `objects::geometry::Geometry`, `ray::Ray`, `texture::Texture`, and `vector::Vector`
[INFO] [stderr]   --> src/canvas/scene_object.rs:20:13
[INFO] [stderr]    |
[INFO] [stderr] 20 |             matrix::Matrix, objects::geometry::Geometry, objects::sphere::Sphere, point::Point,
[INFO] [stderr]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 21 |             ray::Ray, vector::Vector,
[INFO] [stderr]    |             ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 22 |         },
[INFO] [stderr] 23 |         lighting::{texture::Texture, Material, PointLight},
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^            ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Mul`
[INFO] [stderr]  --> src/geo/ray.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::ops::{Add, Mul};
[INFO] [stderr]   |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]  --> src/geo/test.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     use super::*;
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `objects::sphere::Sphere`
[INFO] [stderr]  --> src/lighting/mod.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 |     geo::{objects::sphere::Sphere, point::Point},
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::traits::ApproxEq`
[INFO] [stderr]  --> src/test/mod.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::traits::ApproxEq;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `scene_object`
[INFO] [stderr]   --> src/canvas/scene_object.rs:31:13
[INFO] [stderr]    |
[INFO] [stderr] 31 |         let scene_object = SceneObject::new(sphere, material);
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scene_object`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `light`
[INFO] [stderr]   --> src/canvas/mod.rs:50:33
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stderr]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_light`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/geo/matrix.rs:175:13
[INFO] [stderr]     |
[INFO] [stderr] 175 |         let mut polarities = String::new();
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `polarities`
[INFO] [stderr]    --> src/geo/matrix.rs:175:13
[INFO] [stderr]     |
[INFO] [stderr] 175 |         let mut polarities = String::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_polarities`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `digits`
[INFO] [stderr]    --> src/geo/matrix.rs:192:25
[INFO] [stderr]     |
[INFO] [stderr] 192 |     pub fn round(&self, digits: usize) -> Matrix {
[INFO] [stderr]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_digits`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/test/utils.rs:48:13
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let mut sphere = Sphere::new(Point::new(150., 150., 50.0), 50.0);
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `lights` is never read
[INFO] [stderr]  --> src/canvas/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Canvas {
[INFO] [stderr]   |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 8 |     pub lights: Vec<PointLight>,
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `add_light` is never used
[INFO] [stderr]   --> src/canvas/mod.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl Canvas {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn add_light(&mut self, light: PointLight) {}
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `geometry` and `material` are never read
[INFO] [stderr]  --> src/canvas/scene_object.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct SceneObject<G: Geometry, T: Texture> {
[INFO] [stderr]   |            ----------- fields in this struct
[INFO] [stderr] 5 |     pub geometry: G,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 6 |     pub material: T,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `X` and `Y` are never constructed
[INFO] [stderr]  --> src/geo/matrix.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum Rotation {
[INFO] [stderr]   |          -------- variants in this enum
[INFO] [stderr] 6 |     X,
[INFO] [stderr]   |     ^
[INFO] [stderr] 7 |     Y,
[INFO] [stderr]   |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `shearing` is never used
[INFO] [stderr]   --> src/geo/matrix.rs:94:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Matrix {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 94 |     pub fn shearing(x_y: f64, x_z: f64, y_x: f64, y_z: f64, z_x: f64, z_y: f64) -> Matrix {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `norm` is never used
[INFO] [stderr]   --> src/geo/point.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Point {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn norm(&self) -> f64 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `evaluate` is never used
[INFO] [stderr]   --> src/geo/ray.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl Ray {
[INFO] [stderr]    | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn evaluate(&self, t: f64) -> Point {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `position` and `color` are never read
[INFO] [stderr]   --> src/lighting/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct PointLight {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 10 |     pub position: Point,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 11 |     pub color: Color,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/lighting/mod.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl PointLight {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 15 |     pub fn new(position: Point, color: Color) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `color`, `ambient`, `diffuse`, `specular`, and `shininess` are never read
[INFO] [stderr]   --> src/lighting/mod.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct Material {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] 22 |     color: Color,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 23 |     ambient: f32,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 24 |     diffuse: f32,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 25 |     specular: f32,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 26 |     shininess: f32,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Material` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_material` and `get_material` are never used
[INFO] [stderr]  --> src/lighting/texture.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub trait Texture {
[INFO] [stderr]   |           ------- methods in this trait
[INFO] [stderr] 4 |     fn set_material(&mut self, material: Material);
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 5 |     fn get_material(&self) -> Material;
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `stingray` (bin "stingray" test) generated 22 warnings (run `cargo fix --bin "stingray" -p stingray --tests` to apply 11 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/stingray/3f888eedccca2b99/deps/stingray-3f888eedccca2b99)
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test color::tests::test_add ... ok
[INFO] [stdout] test geo::matrix::tests::test_determinant_2x2 ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_transpose ... ok
[INFO] [stdout] test color::tests::test_mul_f64 ... ok
[INFO] [stdout] test geo::matrix::tests::test_determinant_3x3 ... ok
[INFO] [stdout] test geo::matrix::tests::test_determinant_4x4 ... ok
[INFO] [stdout] test geo::matrix::tests::test_inverse_4x4 ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_2x2 ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_3x3 ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_mul_3x3 ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_translate ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_mul ... ok
[INFO] [stdout] test color::tests::test_mul ... ok
[INFO] [stdout] test geo::matrix::tests::test_matrix_equal ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_sphere_intersection_ray_inside ... ok
[INFO] [stdout] test geo::objects::hit::tests::test_hit_multiple ... ok
[INFO] [stdout] test geo::objects::sphere::tests::scale_ray ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_hit_behind ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_normal ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_sphere_intersection ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_sphere_intersection_behind_ray ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_normal_nonaxial ... ok
[INFO] [stdout] test color::tests::test_sub ... ok
[INFO] [stdout] test geo::objects::hit::tests::test_hit ... ok
[INFO] [stdout] test geo::objects::hit::tests::test_hit_behind ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_transformation ... ok
[INFO] [stdout] test geo::point::tests::add_vector ... ok
[INFO] [stdout] test geo::objects::sphere::tests::translate_ray ... ok
[INFO] [stdout] test geo::ray::tests::scale_ray ... ok
[INFO] [stdout] test geo::ray::tests::test_ray ... ok
[INFO] [stdout] test geo::point::tests::add_points ... ok
[INFO] [stdout] test geo::ray::tests::translate_ray ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_normal_transformed_inverse ... ok
[INFO] [stdout] test geo::vector::tests::negation ... ok
[INFO] [stdout] test geo::vector::tests::add_vector ... ok
[INFO] [stdout] test geo::vector::tests::cross ... ok
[INFO] [stdout] test geo::vector::tests::dot ... ok
[INFO] [stdout] test geo::vector::tests::mag ... ok
[INFO] [stdout] test geo::vector::tests::sub_vector_from_point ... ok
[INFO] [stdout] test geo::vector::tests::test_environment ... ok
[INFO] [stdout] test geo::vector::tests::add_point ... ok
[INFO] [stdout] test geo::vector::tests::norm ... ok
[INFO] [stdout] test geo::vector::tests::test_reflect_vector ... ok
[INFO] [stdout] test geo::vector::tests::test_vector ... ok
[INFO] [stdout] test geo::test::test::test_matrix_3x3 ... ok
[INFO] [stdout] test geo::objects::sphere::tests::test_normal_transformed ... ok
[INFO] [stdout] test geo::test::test::draw_circle ... FAILED
[INFO] [stdout] test canvas::scene_object::tests::test_scene_object ... FAILED
[INFO] [stdout] test canvas::tests::test_canvas ... FAILED
[INFO] [stdout] test test::utils::tests::test_sphere_shadow ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- geo::test::test::draw_circle stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'geo::test::test::draw_circle' (61) panicked at src/canvas/mod.rs:41:43:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized::<std[840933623431fd06]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64321fee91e2 - std[840933623431fd06]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64321fee91e2 - <<std[840933623431fd06]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64321fefea4a - <core[8f93d80df273fe75]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64321fefea4a - core[8f93d80df273fe75]::fmt::write
[INFO] [stdout]    6:     0x64321feee016 - std[840933623431fd06]::io::default_write_fmt::<alloc[40b2bae28975ac47]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64321feee016 - <alloc[40b2bae28975ac47]::vec::Vec<u8> as std[840933623431fd06]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64321fec76af - <std[840933623431fd06]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64321fec76af - std[840933623431fd06]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64321fee1519 - std[840933623431fd06]::panicking::default_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64321fe7cdce - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x64321fe7cdce - test[2f1252070343a163]::test_main_with_exit_callback::<test[2f1252070343a163]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64321fee16d2 - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x64321fee16d2 - std[840933623431fd06]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64321fec7768 - std[840933623431fd06]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64321febf139 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace::<std[840933623431fd06]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64321fec85bd - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64321feff11c - core[8f93d80df273fe75]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64321fefee92 - core[8f93d80df273fe75]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64321fe6745c - <core[8f93d80df273fe75]::result::Result<std[840933623431fd06]::fs::File, std[840933623431fd06]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64321fe6745c - <stingray[c7caa0b75c6d0982]::canvas::Canvas>::save_ppm
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/mod.rs:41:43
[INFO] [stdout]   22:     0x64321fe62714 - stingray[c7caa0b75c6d0982]::geo::test::test::draw_circle
[INFO] [stdout]                                at /opt/rustwide/workdir/src/geo/test.rs:26:16
[INFO] [stdout]   23:     0x64321fe61107 - stingray[c7caa0b75c6d0982]::geo::test::test::draw_circle::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/geo/test.rs:11:21
[INFO] [stdout]   24:     0x64321fe64856 - <stingray[c7caa0b75c6d0982]::geo::test::test::draw_circle::{closure#0} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64321fe7117b - <fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x64321fe7117b - test[2f1252070343a163]::__rust_begin_short_backtrace::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x64321fe7d9da - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x64321fe7d9da - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x64321fe7d9da - test[2f1252070343a163]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x64321fe77ea4 - test[2f1252070343a163]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x64321fe77ea4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace::<test[2f1252070343a163]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x64321fe804d2 - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x64321fe804d2 - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x64321fe804d2 - <std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x64321fee8a8f - <alloc[40b2bae28975ac47]::boxed::Box<dyn core[8f93d80df273fe75]::ops::function::FnOnce<(), Output = ()> + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x64321fee8a8f - <std[840933623431fd06]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7c5d3152aaa4 - <unknown>
[INFO] [stdout]   46:     0x7c5d315b7a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- canvas::scene_object::tests::test_scene_object stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'canvas::scene_object::tests::test_scene_object' (25) panicked at src/lighting/mod.rs:34:9:
[INFO] [stdout] assertion failed: value not fractional
[INFO] [stdout]   value: `10.0`
[INFO] [stdout]  
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized::<std[840933623431fd06]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64321fee91e2 - std[840933623431fd06]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64321fee91e2 - <<std[840933623431fd06]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64321fefea4a - <core[8f93d80df273fe75]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64321fefea4a - core[8f93d80df273fe75]::fmt::write
[INFO] [stdout]    6:     0x64321feee016 - std[840933623431fd06]::io::default_write_fmt::<alloc[40b2bae28975ac47]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64321feee016 - <alloc[40b2bae28975ac47]::vec::Vec<u8> as std[840933623431fd06]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64321fec76af - <std[840933623431fd06]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64321fec76af - std[840933623431fd06]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64321fee1519 - std[840933623431fd06]::panicking::default_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64321fe7cdce - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x64321fe7cdce - test[2f1252070343a163]::test_main_with_exit_callback::<test[2f1252070343a163]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64321fee16d2 - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x64321fee16d2 - std[840933623431fd06]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64321fec7768 - std[840933623431fd06]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64321febf139 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace::<std[840933623431fd06]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64321fec85bd - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64321feff11c - core[8f93d80df273fe75]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64321fe67f4f - <stingray[c7caa0b75c6d0982]::lighting::Material>::new
[INFO] [stdout]                                at /opt/rustwide/workdir/src/test/mod.rs:23:9
[INFO] [stdout]   20:     0x64321fe6a1c1 - stingray[c7caa0b75c6d0982]::canvas::scene_object::tests::test_scene_object
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/scene_object.rs:30:24
[INFO] [stdout]   21:     0x64321fe66ce7 - stingray[c7caa0b75c6d0982]::canvas::scene_object::tests::test_scene_object::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/scene_object.rs:27:27
[INFO] [stdout]   22:     0x64321fe64f16 - <stingray[c7caa0b75c6d0982]::canvas::scene_object::tests::test_scene_object::{closure#0} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x64321fe7117b - <fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64321fe7117b - test[2f1252070343a163]::__rust_begin_short_backtrace::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x64321fe7d9da - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x64321fe7d9da - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x64321fe7d9da - test[2f1252070343a163]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x64321fe77ea4 - test[2f1252070343a163]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x64321fe77ea4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace::<test[2f1252070343a163]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x64321fe804d2 - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x64321fe804d2 - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x64321fe804d2 - <std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x64321fee8a8f - <alloc[40b2bae28975ac47]::boxed::Box<dyn core[8f93d80df273fe75]::ops::function::FnOnce<(), Output = ()> + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x64321fee8a8f - <std[840933623431fd06]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   43:     0x7c5d3152aaa4 - <unknown>
[INFO] [stdout]   44:     0x7c5d315b7a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- canvas::tests::test_canvas stdout ----
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 5.463482975759611,
[INFO] [stdout]     y: 10.834269356367301,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 5
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 540
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 10.916965951519222,
[INFO] [stdout]     y: 20.5685387127346,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 10
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 530
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 16.36044892727883,
[INFO] [stdout]     y: 30.202808069101902,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 16
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 520
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 21.79393190303844,
[INFO] [stdout]     y: 39.7370774254692,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 21
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 511
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 27.217414878798053,
[INFO] [stdout]     y: 49.171346781836505,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 27
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 501
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 32.63089785455767,
[INFO] [stdout]     y: 58.505616138203806,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 32
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 492
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 38.034380830317275,
[INFO] [stdout]     y: 67.73988549457111,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 38
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 483
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 43.427863806076886,
[INFO] [stdout]     y: 76.87415485093841,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 43
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 474
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 48.8113467818365,
[INFO] [stdout]     y: 85.90842420730571,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 48
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 465
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 54.18482975759611,
[INFO] [stdout]     y: 94.84269356367302,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 54
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 456
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 59.54831273335573,
[INFO] [stdout]     y: 103.67696292004032,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 59
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 447
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 64.90179570911535,
[INFO] [stdout]     y: 112.41123227640763,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 64
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 438
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 70.24527868487496,
[INFO] [stdout]     y: 121.04550163277494,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 70
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 429
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 75.57876166063457,
[INFO] [stdout]     y: 129.57977098914225,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 75
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 421
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 80.90224463639419,
[INFO] [stdout]     y: 138.01404034550956,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 80
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 412
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 86.2157276121538,
[INFO] [stdout]     y: 146.34830970187687,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 86
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 404
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 91.51921058791342,
[INFO] [stdout]     y: 154.58257905824416,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 91
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 396
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 96.81269356367304,
[INFO] [stdout]     y: 162.71684841461146,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 96
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 388
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 102.09617653943265,
[INFO] [stdout]     y: 170.75111777097877,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 102
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 380
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 107.36965951519227,
[INFO] [stdout]     y: 178.68538712734608,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 107
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 372
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 112.63314249095188,
[INFO] [stdout]     y: 186.5196564837134,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 112
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 364
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 117.8866254667115,
[INFO] [stdout]     y: 194.2539258400807,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 117
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 356
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 123.13010844247111,
[INFO] [stdout]     y: 201.888195196448,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 123
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 349
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 128.36359141823073,
[INFO] [stdout]     y: 209.4224645528153,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 128
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 341
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 133.58707439399035,
[INFO] [stdout]     y: 216.85673390918262,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 133
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 334
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 138.80055736974995,
[INFO] [stdout]     y: 224.19100326554994,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 138
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 326
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 144.00404034550957,
[INFO] [stdout]     y: 231.42527262191726,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 144
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 319
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 149.1975233212692,
[INFO] [stdout]     y: 238.55954197828456,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 149
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 312
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 154.38100629702882,
[INFO] [stdout]     y: 245.59381133465186,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 154
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 305
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 159.55448927278843,
[INFO] [stdout]     y: 252.52808069101917,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 159
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 298
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 164.71797224854805,
[INFO] [stdout]     y: 259.3623500473865,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 164
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 291
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 169.87145522430768,
[INFO] [stdout]     y: 266.0966194037538,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 169
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 284
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 175.0149382000673,
[INFO] [stdout]     y: 272.7308887601211,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 175
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 278
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 180.1484211758269,
[INFO] [stdout]     y: 279.2651581164884,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 180
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 271
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 185.27190415158654,
[INFO] [stdout]     y: 285.69942747285575,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 185
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 265
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 190.38538712734615,
[INFO] [stdout]     y: 292.03369682922306,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 190
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 258
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 195.48887010310577,
[INFO] [stdout]     y: 298.26796618559035,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 195
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 252
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 200.5823530788654,
[INFO] [stdout]     y: 304.4022355419577,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 200
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 246
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 205.665836054625,
[INFO] [stdout]     y: 310.436504898325,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 205
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 240
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 210.73931903038462,
[INFO] [stdout]     y: 316.3707742546923,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 210
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 234
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 215.80280200614425,
[INFO] [stdout]     y: 322.20504361105964,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 215
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 228
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 220.85628498190385,
[INFO] [stdout]     y: 327.93931296742693,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 220
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 223
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 225.89976795766347,
[INFO] [stdout]     y: 333.57358232379426,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 225
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 217
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 230.9332509334231,
[INFO] [stdout]     y: 339.10785168016156,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 230
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 211
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 235.95673390918273,
[INFO] [stdout]     y: 344.5421210365289,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 235
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 206
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 240.97021688494235,
[INFO] [stdout]     y: 349.8763903928962,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 240
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 201
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 245.97369986070197,
[INFO] [stdout]     y: 355.1106597492635,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 245
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 195
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 250.9671828364616,
[INFO] [stdout]     y: 360.24492910563083,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 250
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 190
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 255.95066581222122,
[INFO] [stdout]     y: 365.27919846199813,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 255
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 185
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 260.9241487879808,
[INFO] [stdout]     y: 370.2134678183655,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 260
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 180
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 265.88763176374044,
[INFO] [stdout]     y: 375.0477371747328,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 265
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 175
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 270.8411147395001,
[INFO] [stdout]     y: 379.7820065311001,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 270
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 171
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 275.7845977152597,
[INFO] [stdout]     y: 384.4162758874674,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 275
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 166
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 280.7180806910193,
[INFO] [stdout]     y: 388.9505452438347,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 280
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 162
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 285.6415636667789,
[INFO] [stdout]     y: 393.38481460020205,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 285
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 157
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 290.5550466425385,
[INFO] [stdout]     y: 397.71908395656936,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 290
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 153
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 295.45852961829814,
[INFO] [stdout]     y: 401.95335331293666,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 295
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 149
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 300.3520125940578,
[INFO] [stdout]     y: 406.087622669304,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 300
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 144
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 305.23549556981743,
[INFO] [stdout]     y: 410.1218920256713,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 305
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 140
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 310.10897854557703,
[INFO] [stdout]     y: 414.0561613820386,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 310
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 136
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 314.97246152133664,
[INFO] [stdout]     y: 417.89043073840594,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 314
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 133
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 319.82594449709626,
[INFO] [stdout]     y: 421.6247000947733,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 319
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 129
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 324.6694274728559,
[INFO] [stdout]     y: 425.2589694511406,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 324
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 125
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 329.5029104486155,
[INFO] [stdout]     y: 428.7932388075079,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 329
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 122
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 334.32639342437517,
[INFO] [stdout]     y: 432.22750816387526,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 334
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 118
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 339.13987640013477,
[INFO] [stdout]     y: 435.5617775202426,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 339
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 115
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 343.9433593758944,
[INFO] [stdout]     y: 438.7960468766099,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 343
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 112
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 348.736842351654,
[INFO] [stdout]     y: 441.93031623297725,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 348
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 109
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 353.5203253274136,
[INFO] [stdout]     y: 444.96458558934455,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 353
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 106
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 358.29380830317325,
[INFO] [stdout]     y: 447.8988549457119,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 358
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 103
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 363.0572912789329,
[INFO] [stdout]     y: 450.7331243020792,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 363
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 100
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 367.81077425469255,
[INFO] [stdout]     y: 453.4673936584465,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 367
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 97
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 372.55425723045215,
[INFO] [stdout]     y: 456.1016630148138,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 372
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 94
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 377.28774020621177,
[INFO] [stdout]     y: 458.6359323711811,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 377
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 92
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 382.0112231819714,
[INFO] [stdout]     y: 461.07020172754846,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 382
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 89
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 386.724706157731,
[INFO] [stdout]     y: 463.4044710839158,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 386
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 87
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 391.42818913349066,
[INFO] [stdout]     y: 465.6387404402831,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 391
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 85
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 396.1216721092503,
[INFO] [stdout]     y: 467.7730097966504,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 396
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 83
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 400.8051550850099,
[INFO] [stdout]     y: 469.8072791530177,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 400
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 81
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 405.4786380607695,
[INFO] [stdout]     y: 471.74154850938504,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 405
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 79
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 410.14212103652915,
[INFO] [stdout]     y: 473.57581786575236,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 410
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 77
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 414.7956040122888,
[INFO] [stdout]     y: 475.31008722211965,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 414
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 75
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 419.4390869880484,
[INFO] [stdout]     y: 476.944356578487,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 419
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 74
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 424.07256996380806,
[INFO] [stdout]     y: 478.4786259348543,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 424
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 72
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 428.6960529395677,
[INFO] [stdout]     y: 479.9128952912216,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 428
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 71
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 433.30953591532733,
[INFO] [stdout]     y: 481.24716464758893,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 433
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 69
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 437.91301889108695,
[INFO] [stdout]     y: 482.4814340039562,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 437
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 68
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 442.5065018668466,
[INFO] [stdout]     y: 483.61570336032355,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 442
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 67
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 447.0899848426062,
[INFO] [stdout]     y: 484.64997271669085,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 447
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 66
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 451.66346781836586,
[INFO] [stdout]     y: 485.5842420730582,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 451
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 65
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 456.2269507941255,
[INFO] [stdout]     y: 486.4185114294255,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 456
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 64
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 460.7804337698851,
[INFO] [stdout]     y: 487.1527807857928,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 460
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 63
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 465.32391674564474,
[INFO] [stdout]     y: 487.7870501421601,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 465
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 63
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 469.85739972140436,
[INFO] [stdout]     y: 488.32131949852743,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 469
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 62
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 474.380882697164,
[INFO] [stdout]     y: 488.75558885489477,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 474
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 62
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 478.89436567292364,
[INFO] [stdout]     y: 489.0898582112621,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 478
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 483.3978486486833,
[INFO] [stdout]     y: 489.3241275676294,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 483
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 487.8913316244429,
[INFO] [stdout]     y: 489.4583969239967,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 487
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 492.3748146002025,
[INFO] [stdout]     y: 489.492666280364,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 492
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 496.84829757596214,
[INFO] [stdout]     y: 489.42693563673134,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 496
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 501.31178055172177,
[INFO] [stdout]     y: 489.26120499309866,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 501
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 61
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 505.7652635274814,
[INFO] [stdout]     y: 488.99547434946595,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 505
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 62
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 510.20874650324106,
[INFO] [stdout]     y: 488.6297437058333,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 510
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 62
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 514.6422294790007,
[INFO] [stdout]     y: 488.1640130622006,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 514
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 62
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 519.0657124547603,
[INFO] [stdout]     y: 487.5982824185679,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 519
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 63
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 523.4791954305199,
[INFO] [stdout]     y: 486.93255177493523,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 523
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 64
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 527.8826784062795,
[INFO] [stdout]     y: 486.1668211313025,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 527
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 64
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 532.2761613820392,
[INFO] [stdout]     y: 485.30109048766985,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 532
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 65
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 536.6596443577988,
[INFO] [stdout]     y: 484.33535984403716,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 536
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 66
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 541.0331273335585,
[INFO] [stdout]     y: 483.2696292004045,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 541
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 67
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 545.3966103093181,
[INFO] [stdout]     y: 482.1038985567718,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 545
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 68
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 549.7500932850778,
[INFO] [stdout]     y: 480.8381679131391,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 549
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 70
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 554.0935762608375,
[INFO] [stdout]     y: 479.47243726950643,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 554
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 71
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 558.4270592365971,
[INFO] [stdout]     y: 478.00670662587373,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 558
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 72
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 562.7505422123567,
[INFO] [stdout]     y: 476.44097598224107,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 562
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 74
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 567.0640251881163,
[INFO] [stdout]     y: 474.7752453386084,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 567
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 76
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 571.3675081638759,
[INFO] [stdout]     y: 473.0095146949757,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 571
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 77
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 575.6609911396355,
[INFO] [stdout]     y: 471.143784051343,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 575
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 79
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 579.9444741153951,
[INFO] [stdout]     y: 469.1780534077103,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 579
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 81
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 584.2179570911547,
[INFO] [stdout]     y: 467.11232276407765,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 584
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 83
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 588.4814400669144,
[INFO] [stdout]     y: 464.94659212044496,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 588
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 86
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 592.734923042674,
[INFO] [stdout]     y: 462.68086147681225,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 592
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 88
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 596.9784060184337,
[INFO] [stdout]     y: 460.3151308331796,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 596
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 90
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 601.2118889941934,
[INFO] [stdout]     y: 457.8494001895469,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 601
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 93
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 605.435371969953,
[INFO] [stdout]     y: 455.2836695459142,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 605
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 95
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 609.6488549457127,
[INFO] [stdout]     y: 452.61793890228154,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 609
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 98
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 613.8523379214723,
[INFO] [stdout]     y: 449.85220825864883,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 613
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 101
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 618.0458208972319,
[INFO] [stdout]     y: 446.98647761501616,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 618
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 104
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 622.2293038729915,
[INFO] [stdout]     y: 444.02074697138346,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 622
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 106
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 626.4027868487511,
[INFO] [stdout]     y: 440.9550163277508,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 626
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 110
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 630.5662698245108,
[INFO] [stdout]     y: 437.7892856841181,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 630
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 113
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 634.7197528002704,
[INFO] [stdout]     y: 434.5235550404854,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 634
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 116
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 638.86323577603,
[INFO] [stdout]     y: 431.15782439685273,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 638
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 119
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 642.9967187517897,
[INFO] [stdout]     y: 427.69209375322004,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 642
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 123
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 647.1202017275493,
[INFO] [stdout]     y: 424.1263631095874,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 647
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 126
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 651.233684703309,
[INFO] [stdout]     y: 420.4606324659547,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 651
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 130
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 655.3371676790687,
[INFO] [stdout]     y: 416.694901822322,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 655
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 134
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 659.4306506548284,
[INFO] [stdout]     y: 412.8291711786893,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 659
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 138
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 663.514133630588,
[INFO] [stdout]     y: 408.8634405350566,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 663
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 142
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 667.5876166063476,
[INFO] [stdout]     y: 404.79770989142395,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 667
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 146
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 671.6510995821072,
[INFO] [stdout]     y: 400.63197924779126,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 671
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 150
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 675.7045825578668,
[INFO] [stdout]     y: 396.36624860415856,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 675
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 154
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 679.7480655336265,
[INFO] [stdout]     y: 392.0005179605259,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 679
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 158
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 683.7815485093861,
[INFO] [stdout]     y: 387.5347873168932,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 683
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 163
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 687.8050314851457,
[INFO] [stdout]     y: 382.9690566732605,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 687
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 168
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 691.8185144609054,
[INFO] [stdout]     y: 378.30332602962784,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 691
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 172
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 695.821997436665,
[INFO] [stdout]     y: 373.53759538599513,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 695
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 177
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 699.8154804124247,
[INFO] [stdout]     y: 368.67186474236246,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 699
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 182
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 703.7989633881843,
[INFO] [stdout]     y: 363.70613409872976,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 703
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 187
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 707.772446363944,
[INFO] [stdout]     y: 358.6404034550971,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 707
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 192
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 711.7359293397037,
[INFO] [stdout]     y: 353.4746728114644,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 711
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 197
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 715.6894123154634,
[INFO] [stdout]     y: 348.20894216783176,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 715
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 202
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 719.632895291223,
[INFO] [stdout]     y: 342.8432115241991,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 719
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 208
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 723.5663782669826,
[INFO] [stdout]     y: 337.3774808805664,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 723
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 213
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 727.4898612427422,
[INFO] [stdout]     y: 331.81175023693373,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 727
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 219
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 731.4033442185018,
[INFO] [stdout]     y: 326.14601959330105,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 731
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 224
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 735.3068271942615,
[INFO] [stdout]     y: 320.3802889496684,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 735
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 230
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 739.2003101700211,
[INFO] [stdout]     y: 314.5145583060357,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 739
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 236
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 743.0837931457808,
[INFO] [stdout]     y: 308.548827662403,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 743
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 242
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 746.9572761215404,
[INFO] [stdout]     y: 302.48309701877037,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 746
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 248
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 750.8207590973001,
[INFO] [stdout]     y: 296.3173663751377,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 750
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 254
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 754.6742420730598,
[INFO] [stdout]     y: 290.05163573150503,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 754
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 260
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 758.5177250488194,
[INFO] [stdout]     y: 283.68590508787236,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 758
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 267
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 762.3512080245791,
[INFO] [stdout]     y: 277.22017444423966,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 762
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 273
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 766.1746910003387,
[INFO] [stdout]     y: 270.654443800607,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 766
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 280
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 769.9881739760983,
[INFO] [stdout]     y: 263.9887131569743,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 769
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 287
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 773.7916569518579,
[INFO] [stdout]     y: 257.22298251334166,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 773
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 293
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 777.5851399276175,
[INFO] [stdout]     y: 250.357251869709,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 777
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 300
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 781.3686229033772,
[INFO] [stdout]     y: 243.39152122607632,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 781
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 307
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 785.1421058791368,
[INFO] [stdout]     y: 236.32579058244366,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 785
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 314
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 788.9055888548965,
[INFO] [stdout]     y: 229.16005993881097,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 788
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 321
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 792.6590718306561,
[INFO] [stdout]     y: 221.8943292951783,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 792
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 329
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 796.4025548064158,
[INFO] [stdout]     y: 214.52859865154562,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 796
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 336
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 800.1360377821754,
[INFO] [stdout]     y: 207.06286800791295,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 800
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 343
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 803.8595207579351,
[INFO] [stdout]     y: 199.4971373642803,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 803
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 351
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 807.5730037336948,
[INFO] [stdout]     y: 191.83140672064764,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 807
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 359
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 811.2764867094545,
[INFO] [stdout]     y: 184.06567607701496,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 811
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 366
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 814.9699696852141,
[INFO] [stdout]     y: 176.19994543338228,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 814
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 374
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 818.6534526609737,
[INFO] [stdout]     y: 168.23421478974961,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 818
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 382
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 822.3269356367333,
[INFO] [stdout]     y: 160.16848414611695,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 822
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 390
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 825.9904186124929,
[INFO] [stdout]     y: 152.0027535024843,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 825
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 398
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 829.6439015882526,
[INFO] [stdout]     y: 143.73702285885162,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 829
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 407
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 833.2873845640122,
[INFO] [stdout]     y: 135.37129221521894,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 833
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 415
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 836.9208675397718,
[INFO] [stdout]     y: 126.90556157158628,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 836
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 424
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 840.5443505155315,
[INFO] [stdout]     y: 118.33983092795361,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 840
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 432
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 844.1578334912912,
[INFO] [stdout]     y: 109.67410028432094,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 844
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 441
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 847.7613164670508,
[INFO] [stdout]     y: 100.90836964068828,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 847
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 450
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 851.3547994428105,
[INFO] [stdout]     y: 92.0426389970556,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 851
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 458
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 854.9382824185702,
[INFO] [stdout]     y: 83.07690835342294,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 854
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 467
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 858.5117653943299,
[INFO] [stdout]     y: 74.01117770979027,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 858
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 476
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 862.0752483700895,
[INFO] [stdout]     y: 64.8454470661576,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 862
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 486
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 865.6287313458491,
[INFO] [stdout]     y: 55.57971642252494,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 865
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 495
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 869.1722143216087,
[INFO] [stdout]     y: 46.21398577889227,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 869
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 504
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 872.7056972973684,
[INFO] [stdout]     y: 36.74825513525961,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 872
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 514
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 876.229180273128,
[INFO] [stdout]     y: 27.18252449162695,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 876
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 523
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 879.7426632488877,
[INFO] [stdout]     y: 17.516793847994286,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 879
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 533
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 883.2461462246473,
[INFO] [stdout]     y: 7.751063204361623,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 883
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 543
[INFO] [stdout] [src/canvas/mod.rs:72:13] &env.projectile.position = Point {
[INFO] [stdout]     x: 886.739629200407,
[INFO] [stdout]     y: -2.11466743927104,
[INFO] [stdout]     z: 0.0,
[INFO] [stdout] }
[INFO] [stdout] [src/canvas/mod.rs:79:13] x = 886
[INFO] [stdout] [src/canvas/mod.rs:79:13] y = 550
[INFO] [stdout] 
[INFO] [stdout] thread 'canvas::tests::test_canvas' (26) panicked at src/canvas/mod.rs:41:43:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized::<std[840933623431fd06]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64321fee91e2 - std[840933623431fd06]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64321fee91e2 - <<std[840933623431fd06]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64321fefea4a - <core[8f93d80df273fe75]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64321fefea4a - core[8f93d80df273fe75]::fmt::write
[INFO] [stdout]    6:     0x64321feee016 - std[840933623431fd06]::io::default_write_fmt::<alloc[40b2bae28975ac47]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64321feee016 - <alloc[40b2bae28975ac47]::vec::Vec<u8> as std[840933623431fd06]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64321fec76af - <std[840933623431fd06]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64321fec76af - std[840933623431fd06]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64321fee1519 - std[840933623431fd06]::panicking::default_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64321fe7cdce - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x64321fe7cdce - test[2f1252070343a163]::test_main_with_exit_callback::<test[2f1252070343a163]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64321fee16d2 - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x64321fee16d2 - std[840933623431fd06]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64321fec7768 - std[840933623431fd06]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64321febf139 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace::<std[840933623431fd06]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64321fec85bd - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64321feff11c - core[8f93d80df273fe75]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64321fefee92 - core[8f93d80df273fe75]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64321fe6745c - <core[8f93d80df273fe75]::result::Result<std[840933623431fd06]::fs::File, std[840933623431fd06]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64321fe6745c - <stingray[c7caa0b75c6d0982]::canvas::Canvas>::save_ppm
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/mod.rs:41:43
[INFO] [stdout]   22:     0x64321fe61c92 - stingray[c7caa0b75c6d0982]::canvas::tests::test_canvas
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/mod.rs:95:16
[INFO] [stdout]   23:     0x64321fe610d7 - stingray[c7caa0b75c6d0982]::canvas::tests::test_canvas::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/mod.rs:63:21
[INFO] [stdout]   24:     0x64321fe64756 - <stingray[c7caa0b75c6d0982]::canvas::tests::test_canvas::{closure#0} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64321fe7117b - <fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x64321fe7117b - test[2f1252070343a163]::__rust_begin_short_backtrace::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x64321fe7d9da - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x64321fe7d9da - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x64321fe7d9da - test[2f1252070343a163]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x64321fe77ea4 - test[2f1252070343a163]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x64321fe77ea4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace::<test[2f1252070343a163]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x64321fe804d2 - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x64321fe804d2 - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x64321fe804d2 - <std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x64321fee8a8f - <alloc[40b2bae28975ac47]::boxed::Box<dyn core[8f93d80df273fe75]::ops::function::FnOnce<(), Output = ()> + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x64321fee8a8f - <std[840933623431fd06]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7c5d3152aaa4 - <unknown>
[INFO] [stdout]   46:     0x7c5d315b7a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test::utils::tests::test_sphere_shadow stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test::utils::tests::test_sphere_shadow' (74) panicked at src/canvas/mod.rs:41:43:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64321fee91e2 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized::<std[840933623431fd06]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64321fee91e2 - std[840933623431fd06]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64321fee91e2 - <<std[840933623431fd06]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64321fefea4a - <core[8f93d80df273fe75]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64321fefea4a - core[8f93d80df273fe75]::fmt::write
[INFO] [stdout]    6:     0x64321feee016 - std[840933623431fd06]::io::default_write_fmt::<alloc[40b2bae28975ac47]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64321feee016 - <alloc[40b2bae28975ac47]::vec::Vec<u8> as std[840933623431fd06]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64321fec76af - <std[840933623431fd06]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64321fec76af - std[840933623431fd06]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64321fee1519 - std[840933623431fd06]::panicking::default_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64321fe7cdce - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x64321fe7cdce - test[2f1252070343a163]::test_main_with_exit_callback::<test[2f1252070343a163]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64321fee16d2 - <alloc[40b2bae28975ac47]::boxed::Box<dyn for<'a, 'b> core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x64321fee16d2 - std[840933623431fd06]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64321fec7768 - std[840933623431fd06]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64321febf139 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace::<std[840933623431fd06]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64321fec85bd - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64321feff11c - core[8f93d80df273fe75]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64321fefee92 - core[8f93d80df273fe75]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64321fe6745c - <core[8f93d80df273fe75]::result::Result<std[840933623431fd06]::fs::File, std[840933623431fd06]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64321fe6745c - <stingray[c7caa0b75c6d0982]::canvas::Canvas>::save_ppm
[INFO] [stdout]                                at /opt/rustwide/workdir/src/canvas/mod.rs:41:43
[INFO] [stdout]   22:     0x64321fe62efd - stingray[c7caa0b75c6d0982]::test::utils::tests::test_sphere_shadow
[INFO] [stdout]                                at /opt/rustwide/workdir/src/test/utils.rs:83:16
[INFO] [stdout]   23:     0x64321fe61167 - stingray[c7caa0b75c6d0982]::test::utils::tests::test_sphere_shadow::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/test/utils.rs:43:28
[INFO] [stdout]   24:     0x64321fe64ed6 - <stingray[c7caa0b75c6d0982]::test::utils::tests::test_sphere_shadow::{closure#0} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64321fe7117b - <fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x64321fe7117b - test[2f1252070343a163]::__rust_begin_short_backtrace::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x64321fe7d9da - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x64321fe7d9da - std[840933623431fd06]::panicking::catch_unwind::<core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x64321fe7d9da - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<test[2f1252070343a163]::run_test_in_process::{closure#0}>, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x64321fe7d9da - test[2f1252070343a163]::run_test_in_process
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x64321fe7d9da - test[2f1252070343a163]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x64321fe77ea4 - test[2f1252070343a163]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x64321fe77ea4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace::<test[2f1252070343a163]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x64321fe804d2 - <core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::do_call::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x64321fe804d2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x64321fe804d2 - std[840933623431fd06]::panic::catch_unwind::<core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe<std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x64321fe804d2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x64321fe804d2 - <std[840933623431fd06]::thread::lifecycle::spawn_unchecked<test[2f1252070343a163]::run_test::{closure#1}, ()>::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x64321fee8a8f - <alloc[40b2bae28975ac47]::boxed::Box<dyn core[8f93d80df273fe75]::ops::function::FnOnce<(), Output = ()> + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x64321fee8a8f - <std[840933623431fd06]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7c5d3152aaa4 - <unknown>
[INFO] [stdout]   46:     0x7c5d315b7a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     canvas::scene_object::tests::test_scene_object
[INFO] [stdout]     canvas::tests::test_canvas
[INFO] [stdout]     geo::test::test::draw_circle
[INFO] [stdout]     test::utils::tests::test_sphere_shadow
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 46 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.22s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin stingray`
[INFO] running `Command { std: "docker" "inspect" "7dd1932955aafdf4ee3119d34d5f2073201b1c659877c1824db4cd2adfdf6309", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7dd1932955aafdf4ee3119d34d5f2073201b1c659877c1824db4cd2adfdf6309", kill_on_drop: false }`
[INFO] [stdout] 7dd1932955aafdf4ee3119d34d5f2073201b1c659877c1824db4cd2adfdf6309
