[INFO] cloning repository https://github.com/quephird/scintilla_rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/quephird/scintilla_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquephird%2Fscintilla_rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquephird%2Fscintilla_rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1cdef5beab2e7bc407ce48e2fc308fb118f3fc16 [INFO] testing quephird/scintilla_rs against beta-2025-10-28 for beta-1.92-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquephird%2Fscintilla_rs" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/quephird/scintilla_rs [INFO] finished tweaking git repo https://github.com/quephird/scintilla_rs [INFO] tweaked toml for git repo https://github.com/quephird/scintilla_rs written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/quephird/scintilla_rs on toolchain beta-2025-10-28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/quephird/scintilla_rs 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0b353d1f74a9bc10504e3a4bff659130d671f82ae0f314f35d45686b39207351 [INFO] running `Command { std: "docker" "start" "-a" "0b353d1f74a9bc10504e3a4bff659130d671f82ae0f314f35d45686b39207351", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0b353d1f74a9bc10504e3a4bff659130d671f82ae0f314f35d45686b39207351", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0b353d1f74a9bc10504e3a4bff659130d671f82ae0f314f35d45686b39207351", kill_on_drop: false }` [INFO] [stdout] 0b353d1f74a9bc10504e3a4bff659130d671f82ae0f314f35d45686b39207351 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 31d86b530f599f2e8d11eadb1c79796f3fcb3c1a118077b22381add3bfcb44bd [INFO] running `Command { std: "docker" "start" "-a" "31d86b530f599f2e8d11eadb1c79796f3fcb3c1a118077b22381add3bfcb44bd", kill_on_drop: false }` [INFO] [stderr] Compiling scintilla_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cube.rs:26:26 [INFO] [stdout] | [INFO] [stdout] 26 | let tmin_numerator = (-1. - origin); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - let tmin_numerator = (-1. - origin); [INFO] [stdout] 26 + let tmin_numerator = -1. - origin ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cube.rs:27:26 [INFO] [stdout] | [INFO] [stdout] 27 | let tmax_numerator = (1. - origin); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - let tmax_numerator = (1. - origin); [INFO] [stdout] 27 + let tmax_numerator = 1. - origin ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/cylinder.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::min; [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: `pattern` [INFO] [stdout] --> src/examples.rs:6:38 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{color, material, matrix, pattern, transform}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `material` and `pattern` [INFO] [stdout] --> src/material.rs:1:27 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{color, light, material, pattern, tuple}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::shape::Shape` [INFO] [stdout] --> src/material.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::shape::Shape; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::float` [INFO] [stdout] --> src/matrix.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::float; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::shape::Shape` [INFO] [stdout] --> src/pattern.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::shape::Shape; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/ppm.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::float` [INFO] [stdout] --> src/sphere.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::float; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::pattern::PatternMethods` [INFO] [stdout] --> src/material.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::pattern::PatternMethods; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmin` is never read [INFO] [stdout] --> src/cube.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mut tmin: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmax` is never read [INFO] [stdout] --> src/cube.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mut tmax: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `floor_material` [INFO] [stdout] --> src/examples.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let floor_material = Material { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_floor_material` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_point` [INFO] [stdout] --> src/plane.rs:34:25 [INFO] [stdout] | [INFO] [stdout] 34 | fn normal_at(&self, local_point: tuple::Tuple) -> tuple::Tuple { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `view` and `field_of_view` are never read [INFO] [stdout] --> src/camera.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | pub view: Matrix4, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub field_of_view: f64, [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 function `new_infinite` is never used [INFO] [stdout] --> src/cone.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Cone { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 19 | pub fn new_infinite(transform: Matrix4, material: Material) -> Cone { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cube.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Cube { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 16 | pub fn new(transform: Matrix4, material: Material) -> Cube { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_infinite` and `new_truncated` are never used [INFO] [stdout] --> src/cylinder.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Cylinder { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 20 | pub fn new_infinite(transform: Matrix4, material: Material) -> Cylinder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn new_truncated(transform: Matrix4, material: Material, minimum: f64, maximum: f64) -> Cylinder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `purple_sphere` is never used [INFO] [stdout] --> src/examples.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn purple_sphere() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_seven_scene` is never used [INFO] [stdout] --> src/examples.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn chapter_seven_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_nine_scene` is never used [INFO] [stdout] --> src/examples.rs:152:8 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn chapter_nine_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_ten_scene` is never used [INFO] [stdout] --> src/examples.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | pub fn chapter_ten_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_eleven_scene` is never used [INFO] [stdout] --> src/examples.rs:350:8 [INFO] [stdout] | [INFO] [stdout] 350 | pub fn chapter_eleven_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_twelve_scene` is never used [INFO] [stdout] --> src/examples.rs:477:8 [INFO] [stdout] | [INFO] [stdout] 477 | pub fn chapter_twelve_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `t` and `is_inside` are never read [INFO] [stdout] --> src/intersection.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct Computations<'scene> { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 92 | pub t: f64, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub is_inside: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SolidColor` is never constructed [INFO] [stdout] --> src/material.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Coloring { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 12 | SolidColor(Color), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Coloring` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_MATERIAL` is never used [INFO] [stdout] --> src/material.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | pub const DEFAULT_MATERIAL:Material = Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_refractive` are never used [INFO] [stdout] --> src/material.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Material { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 40 | pub fn new() -> Material { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn with_refractive(&self, refractive: f64) -> Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Sphere` and `Cube` are never constructed [INFO] [stdout] --> src/object.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Object { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 9 | Sphere(sphere::Sphere), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 10 | Plane(plane::Plane), [INFO] [stdout] 11 | Cube(cube::Cube), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `StripedPattern`, `Ring3DPattern`, `Checker3DPattern`, and `TestPattern` are never constructed [INFO] [stdout] --> src/pattern.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum Pattern { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 10 | StripedPattern(Striped), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | Ring3DPattern(Ring3D), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 14 | Checker3DPattern(Checker3D), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | Checker2DPattern(Checker2D), [INFO] [stdout] 16 | TestPattern(Test), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pattern` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct Striped { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 51 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Striped` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/pattern.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Striped { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 60 | pub fn new(color: Color, other_color: Color, transform: Matrix4) -> Striped { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct Gradient { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Gradient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub struct Ring { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 111 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ring` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 137 | pub struct Ring3D { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 140 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ring3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/pattern.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Ring3D { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 145 | pub fn new(color: Color, other_color: Color, transform: Matrix4) -> Ring3D { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 166 | pub struct Checker3D { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 169 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Checker3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/pattern.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 173 | impl Checker3D { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 174 | pub fn new(color: Color, other_color: Color, transform: Matrix4) -> Checker3D { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct Checker2D { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 198 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Checker2D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 224 | pub struct Test { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 225 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Test` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/pattern.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 229 | impl Test { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 230 | pub fn new(transform: Matrix4) -> Test { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sphere.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Sphere { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 19 | pub fn new(transform: Matrix4, material: Material) -> Sphere { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotation_x` is never used [INFO] [stdout] --> src/transform.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn rotation_x(t: f64) -> matrix::Matrix4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shearing` is never used [INFO] [stdout] --> src/transform.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn shearing(xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> matrix::Matrix4 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/tuple.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait TupleMethods { [INFO] [stdout] | ------------ associated function in this trait [INFO] [stdout] 6 | fn new(x: f64, y: f64, z: f64, w: f64) -> Tuple; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/intersection.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(t: f64, object: &Object) -> Intersection { [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(t: f64, object: &Object) -> Intersection<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/intersection.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/object.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/world.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.63s [INFO] running `Command { std: "docker" "inspect" "31d86b530f599f2e8d11eadb1c79796f3fcb3c1a118077b22381add3bfcb44bd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31d86b530f599f2e8d11eadb1c79796f3fcb3c1a118077b22381add3bfcb44bd", kill_on_drop: false }` [INFO] [stdout] 31d86b530f599f2e8d11eadb1c79796f3fcb3c1a118077b22381add3bfcb44bd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a5a478ab2415002ae748914f5c09ecc55ddca6b494f690f128af4b4afdccf6f7 [INFO] running `Command { std: "docker" "start" "-a" "a5a478ab2415002ae748914f5c09ecc55ddca6b494f690f128af4b4afdccf6f7", kill_on_drop: false }` [INFO] [stderr] Compiling scintilla_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cube.rs:26:26 [INFO] [stdout] | [INFO] [stdout] 26 | let tmin_numerator = (-1. - origin); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - let tmin_numerator = (-1. - origin); [INFO] [stdout] 26 + let tmin_numerator = -1. - origin ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cube.rs:27:26 [INFO] [stdout] | [INFO] [stdout] 27 | let tmax_numerator = (1. - origin); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - let tmax_numerator = (1. - origin); [INFO] [stdout] 27 + let tmax_numerator = 1. - origin ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/cylinder.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::min; [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: `pattern` [INFO] [stdout] --> src/examples.rs:6:38 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{color, material, matrix, pattern, transform}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `intersection` [INFO] [stdout] --> src/intersection.rs:115:24 [INFO] [stdout] | [INFO] [stdout] 115 | use crate::{color, intersection, light, material, matrix, transform, tuple}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pattern` [INFO] [stdout] --> src/material.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{color, light, material, pattern, tuple}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::shape::Shape` [INFO] [stdout] --> src/material.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::shape::Shape; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::shape::Shape` [INFO] [stdout] --> src/pattern.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::shape::Shape; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::pattern::PatternMethods` [INFO] [stdout] --> src/material.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::pattern::PatternMethods; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmin` is never read [INFO] [stdout] --> src/cube.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mut tmin: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmax` is never read [INFO] [stdout] --> src/cube.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mut tmax: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `floor_material` [INFO] [stdout] --> src/examples.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let floor_material = Material { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_floor_material` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_point` [INFO] [stdout] --> src/plane.rs:34:25 [INFO] [stdout] | [INFO] [stdout] 34 | fn normal_at(&self, local_point: tuple::Tuple) -> tuple::Tuple { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `view` and `field_of_view` are never read [INFO] [stdout] --> src/camera.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | pub view: Matrix4, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub field_of_view: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `purple_sphere` is never used [INFO] [stdout] --> src/examples.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn purple_sphere() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_seven_scene` is never used [INFO] [stdout] --> src/examples.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn chapter_seven_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_nine_scene` is never used [INFO] [stdout] --> src/examples.rs:152:8 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn chapter_nine_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_ten_scene` is never used [INFO] [stdout] --> src/examples.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | pub fn chapter_ten_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_eleven_scene` is never used [INFO] [stdout] --> src/examples.rs:350:8 [INFO] [stdout] | [INFO] [stdout] 350 | pub fn chapter_eleven_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chapter_twelve_scene` is never used [INFO] [stdout] --> src/examples.rs:477:8 [INFO] [stdout] | [INFO] [stdout] 477 | pub fn chapter_twelve_scene() -> World { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Cube` is never constructed [INFO] [stdout] --> src/object.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Object { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 11 | Cube(cube::Cube), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Ring3DPattern` and `Checker3DPattern` are never constructed [INFO] [stdout] --> src/pattern.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum Pattern { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | Ring3DPattern(Ring3D), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 14 | Checker3DPattern(Checker3D), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pattern` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct Striped { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 51 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Striped` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct Gradient { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Gradient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub struct Ring { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 111 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ring` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 137 | pub struct Ring3D { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 140 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ring3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/pattern.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Ring3D { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 145 | pub fn new(color: Color, other_color: Color, transform: Matrix4) -> Ring3D { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 166 | pub struct Checker3D { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 169 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Checker3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct Checker2D { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 198 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Checker2D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `transform` is never read [INFO] [stdout] --> src/pattern.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 224 | pub struct Test { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 225 | transform: Matrix4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Test` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_intersect_coplanar_ray` is never used [INFO] [stdout] --> src/plane.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | fn test_intersect_coplanar_ray() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/tuple.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait TupleMethods { [INFO] [stdout] | ------------ associated function in this trait [INFO] [stdout] 6 | fn new(x: f64, y: f64, z: f64, w: f64) -> Tuple; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/intersection.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(t: f64, object: &Object) -> Intersection { [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(t: f64, object: &Object) -> Intersection<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/intersection.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/object.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/world.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.16s [INFO] running `Command { std: "docker" "inspect" "a5a478ab2415002ae748914f5c09ecc55ddca6b494f690f128af4b4afdccf6f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5a478ab2415002ae748914f5c09ecc55ddca6b494f690f128af4b4afdccf6f7", kill_on_drop: false }` [INFO] [stdout] a5a478ab2415002ae748914f5c09ecc55ddca6b494f690f128af4b4afdccf6f7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 42aa1ca11c1c22bab77bebbf9558ed0b08f3b74a1d1db07c78c8e0d9b71ec8fa [INFO] running `Command { std: "docker" "start" "-a" "42aa1ca11c1c22bab77bebbf9558ed0b08f3b74a1d1db07c78c8e0d9b71ec8fa", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/cube.rs:26:26 [INFO] [stderr] | [INFO] [stderr] 26 | let tmin_numerator = (-1. - origin); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 26 - let tmin_numerator = (-1. - origin); [INFO] [stderr] 26 + let tmin_numerator = -1. - origin ; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/cube.rs:27:26 [INFO] [stderr] | [INFO] [stderr] 27 | let tmax_numerator = (1. - origin); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 27 - let tmax_numerator = (1. - origin); [INFO] [stderr] 27 + let tmax_numerator = 1. - origin ; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::min` [INFO] [stderr] --> src/cylinder.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::min; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `pattern` [INFO] [stderr] --> src/examples.rs:6:38 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::{color, material, matrix, pattern, transform}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `intersection` [INFO] [stderr] --> src/intersection.rs:115:24 [INFO] [stderr] | [INFO] [stderr] 115 | use crate::{color, intersection, light, material, matrix, transform, tuple}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `pattern` [INFO] [stderr] --> src/material.rs:1:37 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{color, light, material, pattern, tuple}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::shape::Shape` [INFO] [stderr] --> src/material.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::shape::Shape; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::shape::Shape` [INFO] [stderr] --> src/pattern.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::shape::Shape; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::pattern::PatternMethods` [INFO] [stderr] --> src/material.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::pattern::PatternMethods; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `tmin` is never read [INFO] [stderr] --> src/cube.rs:29:25 [INFO] [stderr] | [INFO] [stderr] 29 | let mut tmin: f64 = 0.0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `tmax` is never read [INFO] [stderr] --> src/cube.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | let mut tmax: f64 = 0.0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `floor_material` [INFO] [stderr] --> src/examples.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | let floor_material = Material { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_floor_material` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_point` [INFO] [stderr] --> src/plane.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | fn normal_at(&self, local_point: tuple::Tuple) -> tuple::Tuple { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stderr] [INFO] [stderr] warning: fields `view` and `field_of_view` are never read [INFO] [stderr] --> src/camera.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct Camera { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 9 | pub view: Matrix4, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 13 | pub field_of_view: f64, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `purple_sphere` is never used [INFO] [stderr] --> src/examples.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn purple_sphere() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `chapter_seven_scene` is never used [INFO] [stderr] --> src/examples.rs:48:8 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn chapter_seven_scene() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `chapter_nine_scene` is never used [INFO] [stderr] --> src/examples.rs:152:8 [INFO] [stderr] | [INFO] [stderr] 152 | pub fn chapter_nine_scene() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `chapter_ten_scene` is never used [INFO] [stderr] --> src/examples.rs:234:8 [INFO] [stderr] | [INFO] [stderr] 234 | pub fn chapter_ten_scene() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `chapter_eleven_scene` is never used [INFO] [stderr] --> src/examples.rs:350:8 [INFO] [stderr] | [INFO] [stderr] 350 | pub fn chapter_eleven_scene() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `chapter_twelve_scene` is never used [INFO] [stderr] --> src/examples.rs:477:8 [INFO] [stderr] | [INFO] [stderr] 477 | pub fn chapter_twelve_scene() -> World { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `Cube` is never constructed [INFO] [stderr] --> src/object.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub enum Object { [INFO] [stderr] | ------ variant in this enum [INFO] [stderr] ... [INFO] [stderr] 11 | Cube(cube::Cube), [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Ring3DPattern` and `Checker3DPattern` are never constructed [INFO] [stderr] --> src/pattern.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub enum Pattern { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 13 | Ring3DPattern(Ring3D), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 14 | Checker3DPattern(Checker3D), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Pattern` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 48 | pub struct Striped { [INFO] [stderr] | ------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 51 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Striped` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 81 | pub struct Gradient { [INFO] [stderr] | -------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 84 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Gradient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 108 | pub struct Ring { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] ... [INFO] [stderr] 111 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Ring` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 137 | pub struct Ring3D { [INFO] [stderr] | ------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 140 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Ring3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/pattern.rs:145:12 [INFO] [stderr] | [INFO] [stderr] 144 | impl Ring3D { [INFO] [stderr] | ----------- associated function in this implementation [INFO] [stderr] 145 | pub fn new(color: Color, other_color: Color, transform: Matrix4) -> Ring3D { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 166 | pub struct Checker3D { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 169 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Checker3D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 195 | pub struct Checker2D { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 198 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Checker2D` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `transform` is never read [INFO] [stderr] --> src/pattern.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 224 | pub struct Test { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] 225 | transform: Matrix4, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Test` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `test_intersect_coplanar_ray` is never used [INFO] [stderr] --> src/plane.rs:76:8 [INFO] [stderr] | [INFO] [stderr] 76 | fn test_intersect_coplanar_ray() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/tuple.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 5 | pub trait TupleMethods { [INFO] [stderr] | ------------ associated function in this trait [INFO] [stderr] 6 | fn new(x: f64, y: f64, z: f64, w: f64) -> Tuple; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/intersection.rs:14:32 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new(t: f64, object: &Object) -> Intersection { [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new(t: f64, object: &Object) -> Intersection<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/intersection.rs:21:33 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 21 | pub fn prepare_computations(&self, ray: &Ray, all_intersections: Vec) -> Computations<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/object.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 17 | pub fn intersect(&self, world_ray: &ray::Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/world.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 46 | pub fn intersect(&self, ray: &ray::Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `scintilla_rs` (bin "scintilla_rs" test) generated 36 warnings (run `cargo fix --bin "scintilla_rs" -p scintilla_rs --tests` to apply 14 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/scintilla_rs-6fdbe15b487add3d) [INFO] [stdout] [INFO] [stdout] running 129 tests [INFO] [stdout] test camera::tests::test_pixel_size_for_vertical_canvas ... ok [INFO] [stdout] test camera::tests::test_ray_at_corner_of_canvas ... ok [INFO] [stdout] test camera::tests::test_ray_at_for_transformed_camera ... ok [INFO] [stdout] test camera::tests::test_render ... ok [INFO] [stdout] test canvas::tests::test_set_pixel ... ok [INFO] [stdout] test camera::tests::test_ray_at_center_of_canvas ... ok [INFO] [stdout] test color::tests::test_multiply ... ok [INFO] [stdout] test color::tests::test_subtract ... ok [INFO] [stdout] test color::tests::test_hadamard ... ok [INFO] [stdout] test color::tests::test_add ... ok [INFO] [stdout] test cone::tests::test_intersect_infinite_hits_twice ... ok [INFO] [stdout] test cone::tests::test_intersect_infinite_hits_once ... ok [INFO] [stdout] test cone::tests::test_intersect_capped ... ok [INFO] [stdout] test cone::tests::test_normal_at_capped ... ok [INFO] [stdout] test cube::tests::test_intersect_inside ... ok [INFO] [stdout] test cube::tests::test_normal_at ... ok [INFO] [stdout] test cylinder::tests::test_intersect_hits_infinite ... ok [INFO] [stdout] test cylinder::tests::test_intersect_hits_truncated ... ok [INFO] [stdout] test cylinder::tests::test_normal_at_infinite ... ok [INFO] [stdout] test float::tests::test_is_equal ... ok [INFO] [stdout] test cylinder::tests::test_intersect_miss_infinite ... ok [INFO] [stdout] test intersection::tests::test_hit_all_negative_t ... ok [INFO] [stdout] test intersection::tests::test_hit_mixture ... ok [INFO] [stdout] test intersection::tests::test_hit_all_positive_t ... ok [INFO] [stdout] test cylinder::tests::test_normal_at_capped ... ok [INFO] [stdout] test camera::tests::test_pixel_size_for_horizontal_canvas ... ok [INFO] [stdout] test intersection::tests::test_prepare_computations_outside ... ok [INFO] [stdout] test material::tests::test_lighting_eye_in_reflection_path ... ok [INFO] [stdout] test material::tests::test_lighting_light_behind_surface ... ok [INFO] [stdout] test material::tests::test_lighting_light_offset_45_degrees ... ok [INFO] [stdout] test canvas::tests::test_new ... ok [INFO] [stdout] test matrix::tests::test_cofactor_3x3 ... ok [INFO] [stdout] test matrix::tests::test_determinant_2x2 ... ok [INFO] [stdout] test matrix::tests::test_determinant_3x3 ... ok [INFO] [stdout] test intersection::tests::test_prepare_computations_n1_n2 ... ok [INFO] [stdout] test matrix::tests::test_determinant_4x4 ... ok [INFO] [stdout] test matrix::tests::test_inverse_4x4 ... ok [INFO] [stdout] test matrix::tests::test_minor_3x3 ... ok [INFO] [stdout] test material::tests::test_lighting_with_pattern ... ok [INFO] [stdout] test matrix::tests::test_is_equal ... ok [INFO] [stdout] test matrix::tests::test_multiply_by_tuple ... ok [INFO] [stdout] test matrix::tests::test_multiply_matrix ... ok [INFO] [stdout] test matrix::tests::test_submatrix_3x3 ... ok [INFO] [stdout] test matrix::tests::test_submatrix_4x4 ... ok [INFO] [stdout] test matrix::tests::test_transpose ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_checker3d_repeats_for_y ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_checker3d_repeats_for_x ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_checker3d_repeats_for_z ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_ring ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_striped_alternates_for_x ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_striped_is_constant_for_z ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_striped_is_constant_for_y ... ok [INFO] [stdout] test pattern::tests::test_world_color_at_with_object_and_pattern_transformation ... ok [INFO] [stdout] test pattern::tests::test_world_color_at_with_object_transformation ... ok [INFO] [stdout] test plane::tests::test_intersect_above ... ok [INFO] [stdout] test pattern::tests::test_world_color_at_with_pattern_transformation ... ok [INFO] [stdout] test plane::tests::test_intersect_parallel_ray ... ok [INFO] [stdout] test plane::tests::test_intersect_below ... ok [INFO] [stdout] test ppm::tests::test_save_splitting_long_lines ... FAILED [INFO] [stdout] test ppm::tests::test_save_with_tiny_canvas ... FAILED [INFO] [stdout] test plane::tests::test_normal_at ... ok [INFO] [stdout] test ray::tests::test_transform_scaling ... ok [INFO] [stdout] test ray::tests::test_transform_translation ... ok [INFO] [stdout] test ray::tests::test_position_at ... ok [INFO] [stdout] test sphere::tests::test_intersect_behind ... ok [INFO] [stdout] test sphere::tests::test_intersect_inside ... ok [INFO] [stdout] test sphere::tests::test_intersect_scaled ... ok [INFO] [stdout] test sphere::tests::test_intersect_tangent ... ok [INFO] [stdout] test sphere::tests::test_normal_at_point_on_y_axis ... ok [INFO] [stdout] test sphere::tests::test_intersect_miss ... ok [INFO] [stdout] test sphere::tests::test_intersect_translated ... ok [INFO] [stdout] test sphere::tests::test_normal_at_for_transformed_sphere ... ok [INFO] [stdout] test sphere::tests::test_normal_at_for_translated_sphere ... ok [INFO] [stdout] test intersection::tests::test_hit_unsorted_intersection ... ok [INFO] [stdout] test material::tests::test_lighting_eye_between_light_and_surface ... ok [INFO] [stdout] test material::tests::test_lighting_eye_offset_45_degrees ... ok [INFO] [stdout] test cylinder::tests::test_intersect_hits_capped ... ok [INFO] [stdout] test pattern::tests::test_local_color_at_gradient ... ok [INFO] [stdout] test sphere::tests::test_normal_at_nonaxial_point ... ok [INFO] [stdout] test sphere::tests::test_normal_at_point_on_x_axis ... ok [INFO] [stdout] test transform::tests::test_chained_transformations ... ok [INFO] [stdout] test transform::tests::test_rotation_x ... ok [INFO] [stdout] test sphere::tests::test_normal_at_point_on_z_axis ... ok [INFO] [stdout] test transform::tests::test_rotation_z ... ok [INFO] [stdout] test transform::tests::test_scaling ... ok [INFO] [stdout] test transform::tests::test_rotation_y ... ok [INFO] [stdout] test intersection::tests::test_prepare_computations_inside ... ok [INFO] [stdout] test transform::tests::test_shearing ... ok [INFO] [stdout] test cube::tests::test_intersect_outside ... ok [INFO] [stdout] test transform::tests::test_translation ... ok [INFO] [stdout] test transform::tests::test_view_looking_in_positive_z_direction ... ok [INFO] [stdout] test tuple::tests::test_add ... ok [INFO] [stdout] test transform::tests::test_view_moves_world ... ok [INFO] [stdout] test tuple::tests::test_cross ... ok [INFO] [stdout] test tuple::tests::test_divide ... ok [INFO] [stdout] test tuple::tests::test_is_equal ... ok [INFO] [stdout] test tuple::tests::test_negate ... ok [INFO] [stdout] test tuple::tests::test_multiply ... ok [INFO] [stdout] test tuple::tests::test_normalize ... ok [INFO] [stdout] test tuple::tests::test_reflect_slanted_surface ... ok [INFO] [stdout] test tuple::tests::test_reflect_45_degrees ... ok [INFO] [stdout] test tuple::tests::test_magnitude ... ok [INFO] [stdout] test tuple::tests::test_subtract ... ok [INFO] [stdout] test world::tests::test_color_at_ray_inside_outer_sphere_and_outside_inner_sphere ... ok [INFO] [stdout] test world::tests::test_color_at_ray_hits ... ok [INFO] [stdout] test world::tests::test_color_at_ray_misses ... ok [INFO] [stdout] test tuple::tests::test_dot ... ok [INFO] [stdout] test world::tests::test_color_at_terminates_safely ... ok [INFO] [stdout] test world::tests::test_intersect_world ... ok [INFO] [stdout] test transform::tests::test_view_arbitrary ... ok [INFO] [stdout] test transform::tests::test_view_default ... ok [INFO] [stdout] test world::tests::test_is_shadowed_object_between_light_and_point ... ok [INFO] [stdout] test world::tests::test_is_shadowed_point_between_light_and_object ... ok [INFO] [stdout] test world::tests::test_prepare_computations_reflective_material ... ok [INFO] [stdout] test world::tests::test_refracted_color_at_maximum_recursive_depth ... ok [INFO] [stdout] test world::tests::test_is_shadowed_light_between_point_and_object ... ok [INFO] [stdout] test world::tests::test_refracted_color_for_refracted_ray ... ok [INFO] [stdout] test world::tests::test_schlick_reflectance_perpendicular_ray ... ok [INFO] [stdout] test world::tests::test_schlick_reflectance_small_angle ... ok [INFO] [stdout] test world::tests::test_schlick_reflectance_total_internal_reflection ... ok [INFO] [stdout] test world::tests::test_shade_hit_for_transparent_material ... ok [INFO] [stdout] test world::tests::test_shade_hit_outside ... ok [INFO] [stdout] test world::tests::test_shade_hit_reflective_material ... ok [INFO] [stdout] test world::tests::test_shade_hit_with_schlick_reflectance ... ok [INFO] [stdout] test world::tests::test_refracted_color_opaque_surface ... ok [INFO] [stdout] test world::tests::test_is_shadowed_point_is_not_collinear_with_light ... ok [INFO] [stdout] test world::tests::test_prepare_computations_nonrelective_material ... ok [INFO] [stdout] test world::tests::test_refracted_color_total_internal_reflection ... ok [INFO] [stdout] test world::tests::test_shade_hit_inside ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- ppm::tests::test_save_splitting_long_lines stdout ---- [INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] [INFO] [stdout] ---- ppm::tests::test_save_with_tiny_canvas stdout ---- [INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] ppm::tests::test_save_splitting_long_lines [INFO] [stdout] ppm::tests::test_save_with_tiny_canvas [INFO] [stdout] [INFO] [stdout] test result: FAILED. 127 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin scintilla_rs` [INFO] running `Command { std: "docker" "inspect" "42aa1ca11c1c22bab77bebbf9558ed0b08f3b74a1d1db07c78c8e0d9b71ec8fa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "42aa1ca11c1c22bab77bebbf9558ed0b08f3b74a1d1db07c78c8e0d9b71ec8fa", kill_on_drop: false }` [INFO] [stdout] 42aa1ca11c1c22bab77bebbf9558ed0b08f3b74a1d1db07c78c8e0d9b71ec8fa