[INFO] cloning repository https://github.com/remilb/path-tracer-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/remilb/path-tracer-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fremilb%2Fpath-tracer-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fremilb%2Fpath-tracer-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b40bb9eaebaff506d6f295e0d7df97ab39896adb [INFO] building remilb/path-tracer-rust against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fremilb%2Fpath-tracer-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/remilb/path-tracer-rust on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/remilb/path-tracer-rust [INFO] finished tweaking git repo https://github.com/remilb/path-tracer-rust [INFO] tweaked toml for git repo https://github.com/remilb/path-tracer-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/remilb/path-tracer-rust 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded getrandom v0.1.10 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 54e78033a19c14cc3e02ca65fe8daf436003653b5a365a19b70dfc8e950cf8aa [INFO] running `Command { std: "docker" "start" "-a" "54e78033a19c14cc3e02ca65fe8daf436003653b5a365a19b70dfc8e950cf8aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "54e78033a19c14cc3e02ca65fe8daf436003653b5a365a19b70dfc8e950cf8aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "54e78033a19c14cc3e02ca65fe8daf436003653b5a365a19b70dfc8e950cf8aa", kill_on_drop: false }` [INFO] [stdout] 54e78033a19c14cc3e02ca65fe8daf436003653b5a365a19b70dfc8e950cf8aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7e8aafeb64e88dcc2b9ebf7e57fc13b45410f2a22f48360da8cae4d0c767ce9e [INFO] running `Command { std: "docker" "start" "-a" "7e8aafeb64e88dcc2b9ebf7e57fc13b45410f2a22f48360da8cae4d0c767ce9e", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling getrandom v0.1.10 [INFO] [stderr] Compiling autocfg v0.1.6 [INFO] [stderr] Compiling cfg-if v0.1.9 [INFO] [stderr] Compiling lazy_static v1.3.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.5 [INFO] [stderr] Compiling num-traits v0.2.8 [INFO] [stderr] Compiling c2-chacha v0.2.2 [INFO] [stderr] Compiling rand_core v0.5.0 [INFO] [stderr] Compiling rand_chacha v0.2.1 [INFO] [stderr] Compiling rand v0.7.0 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling ray_tracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/geometry/bounds.rs:40:22 [INFO] [stdout] | [INFO] [stdout] 40 | let x = self[(corner & 1)].x; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 40 - let x = self[(corner & 1)].x; [INFO] [stdout] 40 + let x = self[corner & 1].x; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/geometry/bounds.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | (d.x + d.x + d.y + d.y) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 209 - (d.x + d.x + d.y + d.y) [INFO] [stdout] 209 + d.x + d.x + d.y + d.y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::FnOnce` [INFO] [stdout] --> src/geometry/ray.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::FnOnce; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bounds2` [INFO] [stdout] --> src/geometry/transform.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use super::bounds::{Bounds2, Bounds3f}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bounds2`, `Bounds2f`, `Bounds2i`, `Bounds3`, `Bounds3f`, and `Bounds3i` [INFO] [stdout] --> src/geometry.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | pub use bounds::{Bounds2, Bounds2f, Bounds2i, Bounds3, Bounds3f, Bounds3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InteractionType` and `SurfaceInteraction` [INFO] [stdout] --> src/geometry.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | pub use interaction::{InteractionType, SurfaceInteraction}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Normal3`, `Normal3f`, and `Normal3i` [INFO] [stdout] --> src/geometry.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | pub use normal::{Normal3, Normal3f, Normal3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Point2i` and `Point3i` [INFO] [stdout] --> src/geometry.rs:19:34 [INFO] [stdout] | [INFO] [stdout] 19 | pub use point::{Point2, Point2f, Point2i, Point3, Point3f, Point3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Transform` and `Transformer` [INFO] [stdout] --> src/geometry.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | pub use transform::{Transform, Transformer}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Vec2f`, `Vec2i`, `Vec3f`, and `Vec3i` [INFO] [stdout] --> src/geometry.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | pub use vector::{Vec2, Vec2f, Vec2i, Vec3, Vec3f, Vec3i}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Parallelogram` and `Plane` [INFO] [stdout] --> src/scene.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::surfaces::{Parallelogram, Plane, Sphere, Surface}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lambert` [INFO] [stdout] --> src/surfaces.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::materials::{Material, Lambert}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_ray` [INFO] [stdout] --> src/materials.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn shade(&self, in_ray: Ray, point: Vec3, normal: Vec3) -> Option { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_ray` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mat1` [INFO] [stdout] --> src/scene.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let mat1 = Material::Lambert(Lambert { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mat1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vfov` and `w` are never read [INFO] [stdout] --> src/camera.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | pos: Vec3, [INFO] [stdout] 10 | vfov: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | w: Vec3, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `abs_dot` and `face_forward` are never used [INFO] [stdout] --> src/geometry.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub trait Dot { [INFO] [stdout] | --- associated items in this trait [INFO] [stdout] ... [INFO] [stdout] 28 | fn abs_dot(v1: Self, v2: RHS) -> Self::Output; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 29 | fn face_forward(self, vs: RHS) -> Self; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `cross` is never used [INFO] [stdout] --> src/geometry.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub trait Cross { [INFO] [stdout] | ----- associated function in this trait [INFO] [stdout] 34 | fn cross(v1: LHS, v2: RHS) -> Self; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `floor` and `ceil` are never used [INFO] [stdout] --> src/geometry.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub trait Scalar: Signed + NumCast + PartialOrd + Copy { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 46 | fn floor(self) -> Self; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | fn ceil(self) -> Self; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Bounds3i` is never used [INFO] [stdout] --> src/geometry/bounds.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub type Bounds3i = Bounds3; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Bounds2f` is never used [INFO] [stdout] --> src/geometry/bounds.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type Bounds2f = Bounds2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Bounds2i` is never used [INFO] [stdout] --> src/geometry/bounds.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub type Bounds2i = Bounds2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/bounds.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Bounds3 { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn from_point(p: Point3) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn corner(&self, corner: u8) -> Point3 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn diagonal(self) -> Vec3 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn surface_area(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn volume(self) -> T { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn maximum_extent(self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn lerp(self, t: Point3f) -> Point3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn offset(self, p: Point3) -> Vec3 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn bounding_sphere(self) -> (Point3, FloatRT) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn union_point(b: Self, p: Point3) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn union(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn intersect(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn overlaps(b1: Self, b2: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn inside(p: Point3, b: Self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn inside_exclusive(p: Point3, b: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn expand(b: Self, delta: T) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn ray_intersect_test(&self, ray: Ray) -> Option<(FloatRT, FloatRT)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/bounds.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 191 | impl Bounds2 { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 192 | pub fn new(p1: Point2, p2: Point2) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn from_point(p: Point2) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn diagonal(self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn perimeter(self) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn area(self) -> T { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn maximum_extent(self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn lerp(self, t: Point2f) -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn offset(self, p: Point2) -> Vec2 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 243 | pub fn bounding_circle(self) -> (Point2, FloatRT) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn union_point(b: Self, p: Point2) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn union(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub fn intersect(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn overlaps(b1: Self, b2: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn inside(p: Point2, b: Self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn inside_exclusive(p: Point2, b: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn expand(b: Self, delta: T) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InteractionType` is never used [INFO] [stdout] --> src/geometry/interaction.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum InteractionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Interaction` is never used [INFO] [stdout] --> src/geometry/interaction.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub trait Interaction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time` and `uv` are never read [INFO] [stdout] --> src/geometry/interaction.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct SurfaceInteraction { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 36 | pub p: Point3f, [INFO] [stdout] 37 | pub time: FloatRT, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub uv: Point2f, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediumInteraction` is never constructed [INFO] [stdout] --> src/geometry/interaction.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct MediumInteraction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `set_shading_geometry` are never used [INFO] [stdout] --> src/geometry/interaction.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl SurfaceInteraction { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 60 | pub fn new(p: Point3f, uv: Point2f, wo: Vec3f, dp: (Vec3f, Vec3f), dn: (Normal3f, Normal3f), time: FloatRT, flip_normal: bool) -> Se... [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn set_shading_geometry(&mut self, dp: (Vec3f, Vec3f), dn: (Normal3f, Normal3f), flip_normal: bool, orientation_is_authoritative:... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Normal3i` is never used [INFO] [stdout] --> src/geometry/normal.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub type Normal3i = Normal3; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normal3f` is never used [INFO] [stdout] --> src/geometry/normal.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn normal3f(x: FloatRT, y: FloatRT, z: FloatRT) -> Normal3f { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normal3i` is never used [INFO] [stdout] --> src/geometry/normal.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn normal3i(x: i32, y: i32, z: i32) -> Normal3i { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/normal.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Normal3 { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn dist(v1: Normal3, v2: Normal3) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn abs(self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn max(v1: Self, v2: Self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn min(v1: Self, v2: Self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn min_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn max_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn max_dim(self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point3i` is never used [INFO] [stdout] --> src/geometry/point.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub type Point3i = Point3; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point2i` is never used [INFO] [stdout] --> src/geometry/point.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type Point2i = Point2; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `point3f` is never used [INFO] [stdout] --> src/geometry/point.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn point3f(x: FloatRT, y: FloatRT, z: FloatRT) -> Point3f { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `point3i` is never used [INFO] [stdout] --> src/geometry/point.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn point3i(x: i32, y: i32, z: i32) -> Point3i { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `point2f` is never used [INFO] [stdout] --> src/geometry/point.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn point2f(x: FloatRT, y: FloatRT) -> Point2f { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `point2i` is never used [INFO] [stdout] --> src/geometry/point.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn point2i(x: i32, y: i32) -> Point2i { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/point.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Point3 { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn ones() -> Point3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn lerp(t: FloatRT, p1: Point3, p2: Point3) -> Point3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn lift_to_float(p: Point3) -> Point3 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn truncate(self) -> Point2 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn dist(p1: Point3, p2: Point3) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn floor(self) -> Point3 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn ceil(self) -> Point3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn abs(self) -> Point3 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn permute(self, x: usize, y: usize, z: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/point.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 214 | impl Point2 { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn cast(self) -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn zeros() -> Point2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn ones() -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 241 | pub fn lerp(t: FloatRT, p1: Point2, p2: Point2) -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pub fn lift_to_float(p: Point2) -> Point2 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn max(p1: Point2, p2: Point2) -> Point2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 261 | pub fn min(p1: Point2, p2: Point2) -> Point2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn extend(self) -> Point3 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 272 | pub fn dist(p1: Point2, p2: Point2) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn floor(self) -> Point2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn ceil(self) -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn abs(self) -> Point2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn permute(self, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `point_at_t` is never used [INFO] [stdout] --> src/geometry/ray.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Ray { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn point_at_t(self, t: FloatRT) -> Point3f { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/transform.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Transform { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 26 | /// New Transform from provided mat. Inverse is computed. [INFO] [stdout] 27 | pub fn new(mat: [[FloatRT; 4]; 4]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn identity() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn translate(delta: Vec3f) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn scale(factor: Vec3f) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn rotate_x(deg: FloatRT) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn rotate_y(deg: FloatRT) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn rotate_z(deg: FloatRT) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn rotate(deg: FloatRT, axis: &Vec3f) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn look_at(pos: Point3f, subject: Point3f, up: Vec3f) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn inverse(&self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn is_identity(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn has_scale(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn swaps_handedness(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Vec3i` is never used [INFO] [stdout] --> src/geometry/vector.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub type Vec3i = Vec3; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Vec2f` is never used [INFO] [stdout] --> src/geometry/vector.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub type Vec2f = Vec2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Vec2i` is never used [INFO] [stdout] --> src/geometry/vector.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type Vec2i = Vec2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec3f` is never used [INFO] [stdout] --> src/geometry/vector.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn vec3f(x: FloatRT, y: FloatRT, z: FloatRT) -> Vec3f { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec3i` is never used [INFO] [stdout] --> src/geometry/vector.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn vec3i(x: i32, y: i32, z: i32) -> Vec3i { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec2f` is never used [INFO] [stdout] --> src/geometry/vector.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn vec2f(x: FloatRT, y: FloatRT) -> Vec2f { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec2i` is never used [INFO] [stdout] --> src/geometry/vector.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn vec2i(x: i32, y: i32) -> Vec2i { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/vector.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vec3 { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn ones() -> Vec3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn length_squared(self) -> FloatRT { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn length(self) -> FloatRT { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn normalize(self) -> Vec3 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn dist(v1: Vec3, v2: Vec3) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn abs(self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn min_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn max_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn max_dim(self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn permute(self, x: usize, y: usize, z: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn coordinate_system(v: Self) -> (Self, Self, Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/vector.rs:330:12 [INFO] [stdout] | [INFO] [stdout] 324 | impl Vec2 { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn cast(self) -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn zeros() -> Vec2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | pub fn ones() -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 348 | pub fn length_squared(self) -> FloatRT { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn length(self) -> FloatRT { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | pub fn dot(v1: Vec2, v2: Vec2) -> T { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | pub fn normalize(self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn dist(v1: Vec2, v2: Vec2) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | pub fn abs(self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn abs_dot(v1: Self, v2: Self) -> T { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | pub fn max(v1: Self, v2: Self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | pub fn min(v1: Self, v2: Self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn min_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn max_component(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 395 | pub fn max_dim(self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub fn permute(self, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `u_len` and `v_len` are never read [INFO] [stdout] --> src/surfaces.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct Parallelogram { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 82 | u_len: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | v_len: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parallelogram` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FloatRT` is never used [INFO] [stdout] --> src/utils.rs:1:6 [INFO] [stdout] | [INFO] [stdout] 1 | type FloatRT = f32; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp` is never used [INFO] [stdout] --> src/utils.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn lerp(t: FloatRT, v1: FloatRT, v2: FloatRT) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quadratic` is never used [INFO] [stdout] --> src/utils.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn quadratic(a: FloatRT, b: FloatRT, c: FloatRT) -> Option<(FloatRT, FloatRT)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/geometry/bounds.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | assert!(corner >= 0 && corner < 8); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `tMax` should have a snake case name [INFO] [stdout] --> src/geometry/ray.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub tMax: FloatRT, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `t_max` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `tMax` should have a snake case name [INFO] [stdout] --> src/geometry/ray.rs:15:38 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(o: Point3f, d: Vec3f, tMax: FloatRT, time: FloatRT) -> Ray { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `t_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.33s [INFO] running `Command { std: "docker" "inspect" "7e8aafeb64e88dcc2b9ebf7e57fc13b45410f2a22f48360da8cae4d0c767ce9e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e8aafeb64e88dcc2b9ebf7e57fc13b45410f2a22f48360da8cae4d0c767ce9e", kill_on_drop: false }` [INFO] [stdout] 7e8aafeb64e88dcc2b9ebf7e57fc13b45410f2a22f48360da8cae4d0c767ce9e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a2952a890a94c3f8650ce0743f46f49d0b7d45f56bb5c7795ba784ad03e16ce6 [INFO] running `Command { std: "docker" "start" "-a" "a2952a890a94c3f8650ce0743f46f49d0b7d45f56bb5c7795ba784ad03e16ce6", kill_on_drop: false }` [INFO] [stderr] Compiling ray_tracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/geometry/bounds.rs:40:22 [INFO] [stdout] | [INFO] [stdout] 40 | let x = self[(corner & 1)].x; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 40 - let x = self[(corner & 1)].x; [INFO] [stdout] 40 + let x = self[corner & 1].x; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/geometry/bounds.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | (d.x + d.x + d.y + d.y) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 209 - (d.x + d.x + d.y + d.y) [INFO] [stdout] 209 + d.x + d.x + d.y + d.y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::FnOnce` [INFO] [stdout] --> src/geometry/ray.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::FnOnce; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bounds2` [INFO] [stdout] --> src/geometry/transform.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use super::bounds::{Bounds2, Bounds3f}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bounds2`, `Bounds2f`, `Bounds2i`, `Bounds3`, `Bounds3f`, and `Bounds3i` [INFO] [stdout] --> src/geometry.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | pub use bounds::{Bounds2, Bounds2f, Bounds2i, Bounds3, Bounds3f, Bounds3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InteractionType` and `SurfaceInteraction` [INFO] [stdout] --> src/geometry.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | pub use interaction::{InteractionType, SurfaceInteraction}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Normal3`, `Normal3f`, and `Normal3i` [INFO] [stdout] --> src/geometry.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | pub use normal::{Normal3, Normal3f, Normal3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Point2i` and `Point3i` [INFO] [stdout] --> src/geometry.rs:19:34 [INFO] [stdout] | [INFO] [stdout] 19 | pub use point::{Point2, Point2f, Point2i, Point3, Point3f, Point3i}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Transform` and `Transformer` [INFO] [stdout] --> src/geometry.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | pub use transform::{Transform, Transformer}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Vec2f`, `Vec2i`, `Vec3f`, and `Vec3i` [INFO] [stdout] --> src/geometry.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | pub use vector::{Vec2, Vec2f, Vec2i, Vec3, Vec3f, Vec3i}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Parallelogram` and `Plane` [INFO] [stdout] --> src/scene.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::surfaces::{Parallelogram, Plane, Sphere, Surface}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lambert` [INFO] [stdout] --> src/surfaces.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::materials::{Material, Lambert}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_ray` [INFO] [stdout] --> src/materials.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn shade(&self, in_ray: Ray, point: Vec3, normal: Vec3) -> Option { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_ray` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mat1` [INFO] [stdout] --> src/scene.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let mat1 = Material::Lambert(Lambert { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mat1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vfov` and `w` are never read [INFO] [stdout] --> src/camera.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | pos: Vec3, [INFO] [stdout] 10 | vfov: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | w: Vec3, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `abs_dot` is never used [INFO] [stdout] --> src/geometry.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub trait Dot { [INFO] [stdout] | --- associated function in this trait [INFO] [stdout] ... [INFO] [stdout] 28 | fn abs_dot(v1: Self, v2: RHS) -> Self::Output; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Bounds3i` is never used [INFO] [stdout] --> src/geometry/bounds.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub type Bounds3i = Bounds3; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Bounds2i` is never used [INFO] [stdout] --> src/geometry/bounds.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub type Bounds2i = Bounds2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/bounds.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 191 | impl Bounds2 { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn from_point(p: Point2) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn maximum_extent(self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn lerp(self, t: Point2f) -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn offset(self, p: Point2) -> Vec2 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 243 | pub fn bounding_circle(self) -> (Point2, FloatRT) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn union_point(b: Self, p: Point2) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn union(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub fn intersect(b1: Self, b2: Self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn overlaps(b1: Self, b2: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn inside(p: Point2, b: Self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn inside_exclusive(p: Point2, b: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn expand(b: Self, delta: T) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InteractionType` is never used [INFO] [stdout] --> src/geometry/interaction.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum InteractionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Interaction` is never used [INFO] [stdout] --> src/geometry/interaction.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub trait Interaction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time` and `uv` are never read [INFO] [stdout] --> src/geometry/interaction.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct SurfaceInteraction { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 36 | pub p: Point3f, [INFO] [stdout] 37 | pub time: FloatRT, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub uv: Point2f, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediumInteraction` is never constructed [INFO] [stdout] --> src/geometry/interaction.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct MediumInteraction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `set_shading_geometry` are never used [INFO] [stdout] --> src/geometry/interaction.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl SurfaceInteraction { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 60 | pub fn new(p: Point3f, uv: Point2f, wo: Vec3f, dp: (Vec3f, Vec3f), dn: (Normal3f, Normal3f), time: FloatRT, flip_normal: bool) -> Se... [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn set_shading_geometry(&mut self, dp: (Vec3f, Vec3f), dn: (Normal3f, Normal3f), flip_normal: bool, orientation_is_authoritative:... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `dist` is never used [INFO] [stdout] --> src/geometry/normal.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Normal3 { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn dist(v1: Normal3, v2: Normal3) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `ones` and `permute` are never used [INFO] [stdout] --> src/geometry/point.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Point3 { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn ones() -> Point3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn permute(self, x: usize, y: usize, z: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `zeros`, `ones`, and `permute` are never used [INFO] [stdout] --> src/geometry/point.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 214 | impl Point2 { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn zeros() -> Point2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn ones() -> Point2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn permute(self, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/geometry/transform.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Transform { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 26 | /// New Transform from provided mat. Inverse is computed. [INFO] [stdout] 27 | pub fn new(mat: [[FloatRT; 4]; 4]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn identity() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn rotate_y(deg: FloatRT) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn rotate_z(deg: FloatRT) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn rotate(deg: FloatRT, axis: &Vec3f) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn look_at(pos: Point3f, subject: Point3f, up: Vec3f) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn inverse(&self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn is_identity(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `ones` and `dist` are never used [INFO] [stdout] --> src/geometry/vector.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vec3 { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn ones() -> Vec3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn dist(v1: Vec3, v2: Vec3) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `zeros`, `ones`, `normalize`, `dist`, `abs_dot`, and `permute` are never used [INFO] [stdout] --> src/geometry/vector.rs:334:12 [INFO] [stdout] | [INFO] [stdout] 324 | impl Vec2 { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn zeros() -> Vec2 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | pub fn ones() -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | pub fn normalize(self) -> Vec2 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn dist(v1: Vec2, v2: Vec2) -> FloatRT { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn abs_dot(v1: Self, v2: Self) -> T { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub fn permute(self, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `u_len` and `v_len` are never read [INFO] [stdout] --> src/surfaces.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct Parallelogram { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 82 | u_len: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | v_len: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parallelogram` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quadratic` is never used [INFO] [stdout] --> src/utils.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn quadratic(a: FloatRT, b: FloatRT, c: FloatRT) -> Option<(FloatRT, FloatRT)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/geometry/bounds.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | assert!(corner >= 0 && corner < 8); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `tMax` should have a snake case name [INFO] [stdout] --> src/geometry/ray.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub tMax: FloatRT, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `t_max` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `tMax` should have a snake case name [INFO] [stdout] --> src/geometry/ray.rs:15:38 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(o: Point3f, d: Vec3f, tMax: FloatRT, time: FloatRT) -> Ray { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `t_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.03s [INFO] running `Command { std: "docker" "inspect" "a2952a890a94c3f8650ce0743f46f49d0b7d45f56bb5c7795ba784ad03e16ce6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2952a890a94c3f8650ce0743f46f49d0b7d45f56bb5c7795ba784ad03e16ce6", kill_on_drop: false }` [INFO] [stdout] a2952a890a94c3f8650ce0743f46f49d0b7d45f56bb5c7795ba784ad03e16ce6