[INFO] cloning repository https://github.com/Ulfr26/keori
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ulfr26/keori" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUlfr26%2Fkeori", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUlfr26%2Fkeori'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f29fd4d61d02e722023d60af261d9df0e9e3e0cb
[INFO] checking Ulfr26/keori against beta-2020-07-24 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUlfr26%2Fkeori" "/workspace/builds/worker-14/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Ulfr26/keori on toolchain beta-2020-07-24
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Ulfr26/keori
[INFO] finished tweaking git repo https://github.com/Ulfr26/keori
[INFO] tweaked toml for git repo https://github.com/Ulfr26/keori written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/Ulfr26/keori already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3308e775ce21ac178a61a094db8fdd9945889960d9df60eaaabc98582acb70b8
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "3308e775ce21ac178a61a094db8fdd9945889960d9df60eaaabc98582acb70b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3308e775ce21ac178a61a094db8fdd9945889960d9df60eaaabc98582acb70b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3308e775ce21ac178a61a094db8fdd9945889960d9df60eaaabc98582acb70b8", kill_on_drop: false }`
[INFO] [stdout] 3308e775ce21ac178a61a094db8fdd9945889960d9df60eaaabc98582acb70b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ff069e3ad9f9e78a4cf71cbe5258ecf9baa81e878121ea394f1ae673c2d7621
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "7ff069e3ad9f9e78a4cf71cbe5258ecf9baa81e878121ea394f1ae673c2d7621", kill_on_drop: false }`
[INFO] [stderr]     Checking term_size v0.3.1
[INFO] [stderr]     Checking keori v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/device.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/device.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]    --> src/render_objects.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let test = normals[faces[i].1].clone();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/device.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/device.rs:19:28
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/device.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/device.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/device.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |             Colour::Grey(a) => Colour::Grey(0.0),
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `colour`
[INFO] [stdout]    --> src/device.rs:140:73
[INFO] [stdout]     |
[INFO] [stdout] 140 |     pub fn draw_line_antialiased(&self, p1: (f64, f64), p2: (f64, f64), colour: Colour) {
[INFO] [stdout]     |                                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_colour`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/device.rs:247:26
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/device.rs:247:28
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/device.rs:247:30
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mvp_matrices`
[INFO] [stdout]    --> src/device.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mvp_matrices: Vec<Matrix> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mvp_matrices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/device.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 324 |             let position = Matrix::translation(m.pos.clone());
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut m = Mesh::from_file(String::from("objects/donut.obj"), Vector::from(2.0, 3.0, 4.0, 1.0), Vector::new()).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render_objects.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut lines: Vec<&str> = contents.split("\n").collect();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/render_objects.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let mut l: Vec<&str> = lines[i].split(" ").collect(); 
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut dx = p2.0 as f64 - p1.0 as f64;
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut dy = p2.1 as f64 - p1.1 as f64;
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let mut xend = x0.round();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:192:13
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let mut yend = y0 + gradient * (xend-x0);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let mut xpxl1 = xend;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut ypxl1 = yend.trunc();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let mut xend = x1.round();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut yend = y1 + gradient * (xend-x1);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut xpxl2 = xend;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let mut ypxl2 = yend.trunc();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `dot_product`
[INFO] [stdout]   --> src/structures.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn dot_product(v1: &Vector, v2: &Vector) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `cross_product`
[INFO] [stdout]   --> src/structures.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn cross_product(v1: &Vector, v2: &Vector) -> Vector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/structures.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn new() -> Matrix {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `translation`
[INFO] [stdout]   --> src/structures.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn translation(v: Vector) -> Matrix {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `perspective`
[INFO] [stdout]    --> src/structures.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn perspective(angle: f64, ratio: f64, near: f64, far: f64) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Rgba`
[INFO] [stdout]   --> src/render_objects.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Rgba(f64, f64, f64, f64), // (r, g, b, a)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/render_objects.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new() -> Camera {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/render_objects.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn new(name: String) -> Mesh {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from`
[INFO] [stdout]   --> src/render_objects.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn from(name: String, vertices: Vec<Vector>, faces: Vec<Face>, pos: Vector, rot: Vector) -> Mesh {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]    --> src/render_objects.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn new() -> Face {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `show_cursor`
[INFO] [stdout]   --> src/device.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn show_cursor(&self, show: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `render`
[INFO] [stdout]    --> src/device.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn render(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/device.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut D = 2.0*dy - dx;
[INFO] [stdout]    |                 ^ help: convert the identifier to snake case: `d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]    --> src/device.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let mut D = 2.0*dx - dy;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]    --> src/render_objects.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let test = normals[faces[i].1].clone();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/device.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/device.rs:19:28
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/device.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/device.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 |             Colour::Rgba(r,g,b,a) => Colour::Rgba(0.0, 0.0, 0.0, 0.0),
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/device.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |             Colour::Grey(a) => Colour::Grey(0.0),
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `colour`
[INFO] [stdout]    --> src/device.rs:140:73
[INFO] [stdout]     |
[INFO] [stdout] 140 |     pub fn draw_line_antialiased(&self, p1: (f64, f64), p2: (f64, f64), colour: Colour) {
[INFO] [stdout]     |                                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_colour`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/device.rs:247:26
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/device.rs:247:28
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/device.rs:247:30
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Colour::Rgba(r,g,b,a) => a,
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mvp_matrices`
[INFO] [stdout]    --> src/device.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mvp_matrices: Vec<Matrix> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mvp_matrices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/device.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 324 |             let position = Matrix::translation(m.pos.clone());
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut m = Mesh::from_file(String::from("objects/donut.obj"), Vector::from(2.0, 3.0, 4.0, 1.0), Vector::new()).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render_objects.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut lines: Vec<&str> = contents.split("\n").collect();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/render_objects.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let mut l: Vec<&str> = lines[i].split(" ").collect(); 
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut dx = p2.0 as f64 - p1.0 as f64;
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut dy = p2.1 as f64 - p1.1 as f64;
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let mut xend = x0.round();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:192:13
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let mut yend = y0 + gradient * (xend-x0);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let mut xpxl1 = xend;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut ypxl1 = yend.trunc();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let mut xend = x1.round();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut yend = y1 + gradient * (xend-x1);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut xpxl2 = xend;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/device.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let mut ypxl2 = yend.trunc();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `dot_product`
[INFO] [stdout]   --> src/structures.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn dot_product(v1: &Vector, v2: &Vector) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `cross_product`
[INFO] [stdout]   --> src/structures.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn cross_product(v1: &Vector, v2: &Vector) -> Vector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/structures.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn new() -> Matrix {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `translation`
[INFO] [stdout]   --> src/structures.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn translation(v: Vector) -> Matrix {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `perspective`
[INFO] [stdout]    --> src/structures.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn perspective(angle: f64, ratio: f64, near: f64, far: f64) -> Matrix {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Rgba`
[INFO] [stdout]   --> src/render_objects.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Rgba(f64, f64, f64, f64), // (r, g, b, a)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/render_objects.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new() -> Camera {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/render_objects.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn new(name: String) -> Mesh {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from`
[INFO] [stdout]   --> src/render_objects.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn from(name: String, vertices: Vec<Vector>, faces: Vec<Face>, pos: Vector, rot: Vector) -> Mesh {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]    --> src/render_objects.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn new() -> Face {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `show_cursor`
[INFO] [stdout]   --> src/device.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn show_cursor(&self, show: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `render`
[INFO] [stdout]    --> src/device.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn render(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/device.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut D = 2.0*dy - dx;
[INFO] [stdout]    |                 ^ help: convert the identifier to snake case: `d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]    --> src/device.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let mut D = 2.0*dx - dy;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.11s
[INFO] running `Command { std: "docker" "inspect" "7ff069e3ad9f9e78a4cf71cbe5258ecf9baa81e878121ea394f1ae673c2d7621", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ff069e3ad9f9e78a4cf71cbe5258ecf9baa81e878121ea394f1ae673c2d7621", kill_on_drop: false }`
[INFO] [stdout] 7ff069e3ad9f9e78a4cf71cbe5258ecf9baa81e878121ea394f1ae673c2d7621
