[INFO] cloning repository https://github.com/koa/triangles
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/koa/triangles" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkoa%2Ftriangles", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkoa%2Ftriangles'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 307df4aa81f7ec0b4ce46cf1d8d2a423989af9c1
[INFO] checking koa/triangles against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkoa%2Ftriangles" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/koa/triangles
[INFO] finished tweaking git repo https://github.com/koa/triangles
[INFO] tweaked toml for git repo https://github.com/koa/triangles written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/koa/triangles on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/koa/triangles 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded svg v0.13.1
[INFO] [stderr]   Downloaded zot v0.1.0
[INFO] [stderr]   Downloaded ordered-float v3.7.0
[INFO] [stderr]   Downloaded triangulate v0.2.0
[INFO] [stderr]   Downloaded stl_io v0.7.0
[INFO] [stderr]   Downloaded vek v0.16.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ebdaa75370a63444f8b80cad10e4101116233ee113e9c12598af3b4f87dc2da
[INFO] running `Command { std: "docker" "start" "-a" "1ebdaa75370a63444f8b80cad10e4101116233ee113e9c12598af3b4f87dc2da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ebdaa75370a63444f8b80cad10e4101116233ee113e9c12598af3b4f87dc2da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ebdaa75370a63444f8b80cad10e4101116233ee113e9c12598af3b4f87dc2da", kill_on_drop: false }`
[INFO] [stdout] 1ebdaa75370a63444f8b80cad10e4101116233ee113e9c12598af3b4f87dc2da
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6fba394c08b6e9bb23aaf579318b89bcc9197a6653bb3528bd9a77b38594f3cb
[INFO] running `Command { std: "docker" "start" "-a" "6fba394c08b6e9bb23aaf579318b89bcc9197a6653bb3528bd9a77b38594f3cb", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling serde v1.0.174
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling unicode-ident v1.0.9
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling rustix v0.37.20
[INFO] [stderr]    Compiling backtrace v0.3.67
[INFO] [stderr]     Checking gimli v0.27.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling serde_json v1.0.97
[INFO] [stderr]    Compiling vek v0.16.1
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking ciborium-io v0.2.1
[INFO] [stderr]     Checking plotters-backend v0.3.5
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling log v0.4.18
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]     Checking anstyle v1.0.0
[INFO] [stderr]     Checking clap_lex v0.5.0
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking plotters-svg v0.3.5
[INFO] [stderr]     Checking zot v0.1.0
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking regex-syntax v0.7.2
[INFO] [stderr]     Checking walkdir v2.3.3
[INFO] [stderr]     Checking ciborium-ll v0.2.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking clap_builder v4.3.4
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]     Checking svg v0.13.1
[INFO] [stderr]     Checking object v0.30.3
[INFO] [stderr]    Compiling syn v2.0.27
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking ordered-float v2.10.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking plotters v0.3.5
[INFO] [stderr]     Checking ordered-float v3.7.0
[INFO] [stderr]     Checking stl_io v0.7.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.8.4
[INFO] [stderr]     Checking getrandom v0.2.9
[INFO] [stderr]     Checking io-lifetimes v1.0.11
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rayon-core v1.11.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking clap v4.3.4
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking addr2line v0.19.0
[INFO] [stderr]     Checking ciborium v0.2.1
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking triangulate v0.2.0
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking triangles v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::geometry2d::polygon::AnyPolygonPointIter::StaticTrianglePolygon`
[INFO] [stdout]  --> src/geometry2d/polygon/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::geometry2d::polygon::AnyPolygonPointIter::StaticTrianglePolygon;
[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: `Triangle2d`
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:10:46
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::prelude::{BoundingBox2d, Point2d, Triangle2d};
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry3d::triangles::indexed_point::IndexedPoint`
[INFO] [stdout]  --> src/geometry3d/line/referenced_line.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::geometry3d::triangles::indexed_point::IndexedPoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/geometry3d/plane/projection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/geometry3d/plane/mod.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let distance = (normal.dot(v1));
[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] 37 -         let distance = (normal.dot(v1));
[INFO] [stdout] 37 +         let distance = normal.dot(v1) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry2d::polygon::AnyPolygonPointIter::StaticTrianglePolygon`
[INFO] [stdout]  --> src/geometry2d/polygon/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::geometry2d::polygon::AnyPolygonPointIter::StaticTrianglePolygon;
[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: `Triangle2d`
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:10:46
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::prelude::{BoundingBox2d, Point2d, Triangle2d};
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry3d::triangles::indexed_point::IndexedPoint`
[INFO] [stdout]  --> src/geometry3d/line/referenced_line.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::geometry3d::triangles::indexed_point::IndexedPoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/geometry3d/plane/projection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/geometry3d/plane/mod.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let distance = (normal.dot(v1));
[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] 37 -         let distance = (normal.dot(v1));
[INFO] [stdout] 37 +         let distance = normal.dot(v1) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vek::approx::relative_eq`
[INFO] [stdout]    --> src/geometry3d/plane/mod.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     use vek::approx::relative_eq;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::prelude::AnyPolygon::StaticTrianglePolygon`
[INFO] [stdout]    --> src/geometry3d/plane/mod.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     use crate::prelude::AnyPolygon::StaticTrianglePolygon;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/geometry3d/plane/projection.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let Vec4 { x, y, z, w } = q.map(|v| v.0) * Into::<Vec4<f64>>::into(v4);
[INFO] [stdout]    |                          ^ help: try ignoring the field: `z: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/geometry3d/plane/projection.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let Vec4 { x, y, z, w } = q.map(|v| v.0) * Into::<Vec4<f64>>::into(v4);
[INFO] [stdout]    |                             ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let data = Box::new(PlanesAndTriangles {
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 |         for (idx, triangle) in triangles.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleLineIterator` is never constructed
[INFO] [stdout]    --> src/geometry2d/triangle/mod.rs:521:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub struct TriangleLineIterator<'a, T: Triangle2d<Pt>, Pt: Point2d> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleLine` is never constructed
[INFO] [stdout]    --> src/geometry2d/triangle/mod.rs:527:12
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub struct TriangleLine<'a, T: Triangle2d<Pt>, Pt: Point2d> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoundingBox3d` is never used
[INFO] [stdout]  --> src/geometry3d/point/bounding_box.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum BoundingBox3d {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoundingBox3dValues` is never constructed
[INFO] [stdout]   --> src/geometry3d/point/bounding_box.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct BoundingBox3dValues {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `min_x`, `min_y`, `max_x`, `max_y`, `width`, and `height` are never used
[INFO] [stdout]   --> src/geometry3d/point/bounding_box.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl BoundingBox3dValues {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 25 |     pub fn min_x(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn min_y(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn max_x(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn max_y(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn width(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn height(&self) -> Number {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_point`, `points`, `get_side`, and `sides` are never used
[INFO] [stdout]    --> src/geometry3d/triangles/mod.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl IndexedTriangleEntry {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 103 |     #[inline]
[INFO] [stdout] 104 |     fn get_point(&self, p: TriangleCornerPoint) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn points(&self) -> [usize; 3] {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn get_side(&self, side: TriangleSide) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn sides(&self) -> [[usize; 2]; 3] {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `triangles` and `planes` are never read
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct PlanesAndTriangles<'a, P: Point3d> {
[INFO] [stdout]    |        ------------------ fields in this struct
[INFO] [stdout] 26 |     triangles: &'a IndexedTriangleList<P>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 27 |     planes: Vec<Plane3d>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlanesAndTriangles` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DerivedData` is never constructed
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct DerivedData<'a, P: Point3d> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `surfaces` is never read
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TriangleTopology<'a, P: Point3d> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     surfaces: OnceCell<Vec<TriangleGroup<'a, P>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_planes_vec` is never used
[INFO] [stdout]    --> src/geometry3d/triangles/topology/mod.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn group_planes_vec<P: Point3d>(triangles: &Vec<Plane3d>) -> HashMap<&Plane3d, Vec<&Plane3d>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn points_of_range(&self, range: &PointRange) -> PolygonRangeIterator<Self, P> {
[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] 19 |     fn points_of_range(&self, range: &PointRange) -> PolygonRangeIterator<'_, Self, P> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lines(&self) -> PolygonLineIterator<Self::PointIter<'_>, P> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |         |                                   |
[INFO] [stdout]    |              |         |                                   the same lifetime is elided here
[INFO] [stdout]    |              |         the same lifetime is hidden here
[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] 27 |     fn lines(&self) -> PolygonLineIterator<'_, Self::PointIter<'_>, P> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/geometry2d/triangle/found_triangle.rs:153:15
[INFO] [stdout]     |
[INFO] [stdout] 153 |     triangle: &T,
[INFO] [stdout]     |               ^^ the lifetime is elided here
[INFO] [stdout] 154 | ) -> FoundPoint<PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 154 | ) -> FoundPoint<'_, PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/geometry2d/triangle/found_triangle.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout] 190 |     polygon: &P,
[INFO] [stdout]     |              ^^ the lifetime is elided here
[INFO] [stdout] 191 | ) -> FoundPoint<PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 191 | ) -> FoundPoint<'_, PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/geometry3d/triangle/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn get_side(&self, side: TriangleSide) -> ReferencedLine<P> {
[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] 9 |     fn get_side(&self, side: TriangleSide) -> ReferencedLine<'_, P> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangle/mod.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn sides(&self) -> [ReferencedLine<P>; 3] {
[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] 15 |     fn sides(&self) -> [ReferencedLine<'_, P>; 3] {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn triangles(&self) -> Vec<ReferencedTriangle<P>> {
[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] 53 |     pub fn triangles(&self) -> Vec<ReferencedTriangle<'_, P>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_triangle(&self, idx: usize, entry: &IndexedTriangleEntry) -> ReferencedTriangle<P> {
[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] 61 |     fn create_triangle(&self, idx: usize, entry: &IndexedTriangleEntry) -> ReferencedTriangle<'_, P> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_triangle(&self, idx: usize) -> Option<ReferencedTriangle<P>> {
[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] 73 |     pub fn get_triangle(&self, idx: usize) -> Option<ReferencedTriangle<'_, P>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `small_triangle`
[INFO] [stdout]    --> src/geometry2d/test.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |     let small_triangle = StaticTriangle2d::<StaticPoint2d>::new(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_small_triangle`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `criterion_group` and `criterion_main`
[INFO] [stdout]  --> benches/figures2d.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `criterion_group` and `criterion_main`
[INFO] [stdout]  --> benches/topology.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `criterion_group` and `criterion_main`
[INFO] [stdout]  --> benches/topology.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `criterion_group` and `criterion_main`
[INFO] [stdout]  --> benches/figures2d.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[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 variable: `z`
[INFO] [stdout]   --> src/geometry3d/plane/projection.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let Vec4 { x, y, z, w } = q.map(|v| v.0) * Into::<Vec4<f64>>::into(v4);
[INFO] [stdout]    |                          ^ help: try ignoring the field: `z: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/geometry3d/plane/projection.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let Vec4 { x, y, z, w } = q.map(|v| v.0) * Into::<Vec4<f64>>::into(v4);
[INFO] [stdout]    |                             ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let data = Box::new(PlanesAndTriangles {
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 |         for (idx, triangle) in triangles.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleLineIterator` is never constructed
[INFO] [stdout]    --> src/geometry2d/triangle/mod.rs:521:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub struct TriangleLineIterator<'a, T: Triangle2d<Pt>, Pt: Point2d> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleLine` is never constructed
[INFO] [stdout]    --> src/geometry2d/triangle/mod.rs:527:12
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub struct TriangleLine<'a, T: Triangle2d<Pt>, Pt: Point2d> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `min_x`, `min_y`, `max_x`, `max_y`, `width`, and `height` are never used
[INFO] [stdout]   --> src/geometry3d/point/bounding_box.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl BoundingBox3dValues {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 25 |     pub fn min_x(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn min_y(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn max_x(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn max_y(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn width(&self) -> Number {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn height(&self) -> Number {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_point`, `points`, `get_side`, and `sides` are never used
[INFO] [stdout]    --> src/geometry3d/triangles/mod.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl IndexedTriangleEntry {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 103 |     #[inline]
[INFO] [stdout] 104 |     fn get_point(&self, p: TriangleCornerPoint) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn points(&self) -> [usize; 3] {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn get_side(&self, side: TriangleSide) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn sides(&self) -> [[usize; 2]; 3] {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `triangles` and `planes` are never read
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct PlanesAndTriangles<'a, P: Point3d> {
[INFO] [stdout]    |        ------------------ fields in this struct
[INFO] [stdout] 26 |     triangles: &'a IndexedTriangleList<P>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 27 |     planes: Vec<Plane3d>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlanesAndTriangles` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DerivedData` is never constructed
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct DerivedData<'a, P: Point3d> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `surfaces` is never read
[INFO] [stdout]   --> src/geometry3d/triangles/topology/mod.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TriangleTopology<'a, P: Point3d> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     surfaces: OnceCell<Vec<TriangleGroup<'a, P>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_planes_vec` is never used
[INFO] [stdout]    --> src/geometry3d/triangles/topology/mod.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn group_planes_vec<P: Point3d>(triangles: &Vec<Plane3d>) -> HashMap<&Plane3d, Vec<&Plane3d>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_planes` is never used
[INFO] [stdout]   --> src/geometry3d/triangles/topology/test.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn group_planes<'a>(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn points_of_range(&self, range: &PointRange) -> PolygonRangeIterator<Self, P> {
[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] 19 |     fn points_of_range(&self, range: &PointRange) -> PolygonRangeIterator<'_, Self, P> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry2d/polygon/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lines(&self) -> PolygonLineIterator<Self::PointIter<'_>, P> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |              |         |                                   |
[INFO] [stdout]    |              |         |                                   the same lifetime is elided here
[INFO] [stdout]    |              |         the same lifetime is hidden here
[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] 27 |     fn lines(&self) -> PolygonLineIterator<'_, Self::PointIter<'_>, P> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/geometry2d/triangle/found_triangle.rs:153:15
[INFO] [stdout]     |
[INFO] [stdout] 153 |     triangle: &T,
[INFO] [stdout]     |               ^^ the lifetime is elided here
[INFO] [stdout] 154 | ) -> FoundPoint<PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 154 | ) -> FoundPoint<'_, PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/geometry2d/triangle/found_triangle.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout] 190 |     polygon: &P,
[INFO] [stdout]     |              ^^ the lifetime is elided here
[INFO] [stdout] 191 | ) -> FoundPoint<PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 191 | ) -> FoundPoint<'_, PointTriangle, PointPolygon, T, P> {
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/geometry3d/triangle/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn get_side(&self, side: TriangleSide) -> ReferencedLine<P> {
[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] 9 |     fn get_side(&self, side: TriangleSide) -> ReferencedLine<'_, P> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangle/mod.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn sides(&self) -> [ReferencedLine<P>; 3] {
[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] 15 |     fn sides(&self) -> [ReferencedLine<'_, P>; 3] {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn triangles(&self) -> Vec<ReferencedTriangle<P>> {
[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] 53 |     pub fn triangles(&self) -> Vec<ReferencedTriangle<'_, P>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_triangle(&self, idx: usize, entry: &IndexedTriangleEntry) -> ReferencedTriangle<P> {
[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] 61 |     fn create_triangle(&self, idx: usize, entry: &IndexedTriangleEntry) -> ReferencedTriangle<'_, P> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/geometry3d/triangles/mod.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_triangle(&self, idx: usize) -> Option<ReferencedTriangle<P>> {
[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] 73 |     pub fn get_triangle(&self, idx: usize) -> Option<ReferencedTriangle<'_, P>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.25s
[INFO] running `Command { std: "docker" "inspect" "6fba394c08b6e9bb23aaf579318b89bcc9197a6653bb3528bd9a77b38594f3cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fba394c08b6e9bb23aaf579318b89bcc9197a6653bb3528bd9a77b38594f3cb", kill_on_drop: false }`
[INFO] [stdout] 6fba394c08b6e9bb23aaf579318b89bcc9197a6653bb3528bd9a77b38594f3cb
