[INFO] cloning repository https://github.com/JohnPiwinski/geometry-central-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JohnPiwinski/geometry-central-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPiwinski%2Fgeometry-central-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPiwinski%2Fgeometry-central-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ec1bbdb6977b8d8ec0657ab3ade9578551050759
[INFO] testing JohnPiwinski/geometry-central-rs against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPiwinski%2Fgeometry-central-rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JohnPiwinski/geometry-central-rs
[INFO] finished tweaking git repo https://github.com/JohnPiwinski/geometry-central-rs
[INFO] tweaked toml for git repo https://github.com/JohnPiwinski/geometry-central-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JohnPiwinski/geometry-central-rs on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JohnPiwinski/geometry-central-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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded obj v0.10.2
[INFO] [stderr]   Downloaded sorted-vec v0.8.10
[INFO] [stderr]   Downloaded ply-rs v0.1.3
[INFO] [stderr]   Downloaded nalgebra-sparse-linalg v0.1.10
[INFO] [stderr]   Downloaded divrem v1.0.0
[INFO] [stderr]   Downloaded generator v0.8.9
[INFO] [stderr]   Downloaded nalgebra-sparse v0.10.0
[INFO] [stderr]   Downloaded kiddo v5.3.2
[INFO] [stderr]   Downloaded nalgebra v0.33.3
[INFO] [stderr]   Downloaded fixed v1.29.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.75
[INFO] [stderr]   Downloaded ruzstd v0.8.3
[INFO] [stderr]   Downloaded gilrs v0.11.2
[INFO] [stderr]   Downloaded gilrs-core v0.6.8
[INFO] [stderr]   Downloaded inotify v0.11.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87
[INFO] running `Command { std: "docker" "start" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]    Compiling pulldown-cmark v0.9.6
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling peg-runtime v0.6.3
[INFO] [stderr]    Compiling fixed v1.29.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling az v1.3.0
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling peg-macros v0.6.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling array-init v2.1.0
[INFO] [stderr]    Compiling sorted-vec v0.8.10
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling cmov v0.5.4
[INFO] [stderr]    Compiling divrem v1.0.0
[INFO] [stderr]    Compiling obj v0.10.2
[INFO] [stderr]    Compiling generator v0.8.9
[INFO] [stderr]    Compiling peg v0.6.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling equator v0.4.2
[INFO] [stderr]    Compiling aligned-vec v0.6.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cargo-platform v0.1.9
[INFO] [stderr]    Compiling cargo_metadata v0.14.2
[INFO] [stderr]    Compiling nalgebra v0.33.3
[INFO] [stderr]    Compiling skeptic v0.13.7
[INFO] [stderr]    Compiling ply-rs v0.1.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling nalgebra-sparse v0.10.0
[INFO] [stderr]    Compiling nalgebra-sparse-linalg v0.1.10
[INFO] [stderr]    Compiling kiddo v5.3.2
[INFO] [stderr]    Compiling geometry-central v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/vertex_position_geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::element_types::*;
[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: `crate::surface::surface_mesh::SurfaceMesh`
[INFO] [stdout]  --> src/surface/intersection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::surface_mesh::SurfaceMesh;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `displacement_length`
[INFO] [stdout]  --> src/surface/intrinsic_triangulation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     displacement_length, normalize_barycentric,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector2`
[INFO] [stdout]   --> src/surface/signed_heat_method.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use nalgebra::Vector2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> src/surface/common_subdivision.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::numerical::{SparseMatrix, Triplet, Vector};
[INFO] [stdout]   |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/surface/common_subdivision.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/geodesic_centroidal_voronoi_tessellation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/polygon_mesh_heat_solver.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Triplet` and `Vector`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::numerical::{SparseMatrix, SquareSolver, Triplet, Vector};
[INFO] [stdout]   |                                                    ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::DVector`
[INFO] [stdout]   --> src/surface/transfer_functions.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nalgebra::DVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/direction_fields.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/boundary_first_flattening.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `triangle_area`
[INFO] [stdout]   --> src/surface/integer_coordinates_intrinsic_triangulation.rs:14:69
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::utilities::elementary_geometry::{layout_triangle_vertex, triangle_area};
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |         todo!("collapse_edge_triangular not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         -------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         todo!("insert_vertex on face not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         ----------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 364 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         todo!("computeVertexInsertionDataGeodesic needs IntrinsicGeometryInterface");
[INFO] [stdout]     |         ---------------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 168 |         let boundary_crossings: [Vec<f64>; 3] = [Vec::new(), Vec::new(), Vec::new()];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |             todo!("vector heat solver solve");
[INFO] [stdout]     |             --------------------------------- any code following this expression is unreachable
[INFO] [stdout] 199 |             x0
[INFO] [stdout]     |             ^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     todo!("sharedEdge for constraint building");
[INFO] [stdout]     |                     ------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 215 |                     m += 1;
[INFO] [stdout]     |                     ^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:258:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 todo!("Poisson solver solve");
[INFO] [stdout]     |                 ----------------------------- any code following this expression is unreachable
[INFO] [stdout] 258 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 426 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:545:17
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 545 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 572 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `he_a_next`
[INFO] [stdout]    --> src/surface/surface_mesh.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let he_a_next = he_a_center.next(self);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_he_a_next`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/surface/meshio.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                     let base = positions.len();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_options`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:141:35
[INFO] [stdout]     |
[INFO] [stdout] 141 |     edge_is_hittable: &[bool; 3], trace_options: &TraceOptions,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_face`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let start_face = wedge_he.face(mesh);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_face`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut he = c.halfedge().next(&self.mesh);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut trips = Vec::new();
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut m = 0usize;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut div = DVector::<f64>::zeros(v);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/polygon_mesh_heat_solver.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let mut py = p.mul_vector(&yt_dense);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `layout_round` is never read
[INFO] [stdout]    --> src/surface/parameterize.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         layout_round += 1;
[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 `N` is never read
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:21
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                     ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 484 |         N = 0;
[INFO] [stdout]     |         ----- `N` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_iv` is never read
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1655:17
[INFO] [stdout]      |
[INFO] [stdout] 1655 |                 last_iv = iv_idx;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:614:13
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:704:13
[INFO] [stdout]     |
[INFO] [stdout] 704 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:933:21
[INFO] [stdout]     |
[INFO] [stdout] 933 |                 let mut opts = TraceOptions::default();
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_region` is never read
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:786:13
[INFO] [stdout]     |
[INFO] [stdout] 786 |             found_region = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `circumcenter_loc` is never read
[INFO] [stdout]     --> src/surface/integer_coordinates_intrinsic_triangulation.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         circumcenter_loc = normalize_barycentric(circumcenter_loc);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:90:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | /     pub fn get_vertex_property<T>(&self, property_name: &str) -> VertexData<T>
[INFO] [stdout]  91 | |     where
[INFO] [stdout]  92 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | /     pub fn get_halfedge_property<T>(&self, property_name: &str) -> HalfedgeData<T>
[INFO] [stdout] 111 | |     where
[INFO] [stdout] 112 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | /     pub fn get_corner_property<T>(&self, property_name: &str) -> CornerData<T>
[INFO] [stdout] 131 | |     where
[INFO] [stdout] 132 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | /     pub fn get_edge_property<T>(&self, property_name: &str) -> EdgeData<T>
[INFO] [stdout] 151 | |     where
[INFO] [stdout] 152 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | /     pub fn get_face_property<T>(&self, property_name: &str) -> FaceData<T>
[INFO] [stdout] 171 | |     where
[INFO] [stdout] 172 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | /     pub fn get_boundary_loop_property<T>(&self, property_name: &str) -> BoundaryLoopData<T>
[INFO] [stdout] 191 | |     where
[INFO] [stdout] 192 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | /     pub fn add_vertex_property<T>(&mut self, property_name: &str, data: &VertexData<T>)
[INFO] [stdout] 269 | |     where
[INFO] [stdout] 270 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     pub fn add_halfedge_property<T>(&mut self, property_name: &str, data: &HalfedgeData<T>)
[INFO] [stdout] 285 | |     where
[INFO] [stdout] 286 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 | /     pub fn add_corner_property<T>(&mut self, property_name: &str, data: &CornerData<T>)
[INFO] [stdout] 301 | |     where
[INFO] [stdout] 302 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | /     pub fn add_edge_property<T>(&mut self, property_name: &str, data: &EdgeData<T>)
[INFO] [stdout] 317 | |     where
[INFO] [stdout] 318 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | /     pub fn add_face_property<T>(&mut self, property_name: &str, data: &FaceData<T>)
[INFO] [stdout] 333 | |     where
[INFO] [stdout] 334 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | /     pub fn add_boundary_loop_property<T>(&mut self, property_name: &str, data: &BoundaryLoopData<T>)
[INFO] [stdout] 349 | |     where
[INFO] [stdout] 350 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `WeightedAngle` is more private than the item `FlipEdgeNetwork::wedge_angle_queue`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub wedge_angle_queue: BinaryHeap<WeightedAngle>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `FlipEdgeNetwork::wedge_angle_queue` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `WeightedAngle` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct WeightedAngle(f64, SegmentAngleType, FlipPathSegment);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]   --> src/numerical/positive_definite_solvers.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PositiveDefiniteSolver<T: Scalar + ComplexField> {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 11 |     n_rows: usize,
[INFO] [stdout] 12 |     n_cols: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]  --> src/numerical/square_solvers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SquareSolver<T: Scalar + ComplexField> {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     n_rows: usize,
[INFO] [stdout] 9 |     n_cols: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mesh` is never read
[INFO] [stdout]  --> src/utilities/element_iterators.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RangeIterator<'a, Tag: ElementTag> {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 6 |     mesh: &'a SurfaceMesh,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `face_coords_to_bary_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn face_coords_to_bary_coords(vert_coords: &[Vector2<f64>; 3], face_coord: Vector2<f64>) -> Vector3<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bary_coords_to_face_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn bary_coords_to_face_coords(vert_coords: &[Vector2<f64>; 3], bary: Vector3<f64>) -> Vector2<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let D = zero.d - one.d;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R0` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let R0 = x0 * x0 + zero.pseudo_y * zero.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let R1 = x1 * x1 + one.pseudo_y * one.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ninter` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:412:17
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let mut Ninter = 0;
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `ninter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:421:17
[INFO] [stdout]     |
[INFO] [stdout] 421 |             let D2 = D * D;
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:422:17
[INFO] [stdout]     |
[INFO] [stdout] 422 |             let Q = 0.5 * (R1 - R0 - D2);
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:423:17
[INFO] [stdout]     |
[INFO] [stdout] 423 |             let X = x0 - x1;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let A = X * X - D2;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |             let B = Q * X + D2 * x0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |             let C = Q * Q - D2 * R0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ngood_start` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |         let mut Ngood_start = 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `ngood_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:732:22
[INFO] [stdout]     |
[INFO] [stdout] 732 |                 let (N, map, start) = self.intersect_intervals(pp, &q);
[INFO] [stdout]     |                      ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:928:9
[INFO] [stdout]     |
[INFO] [stdout] 928 |         L: f64,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |         let L1 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |         let L2 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Le` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1377:13
[INFO] [stdout]      |
[INFO] [stdout] 1377 |         let Le = self.edge_lengths[min_iv.edge];
[INFO] [stdout]      |             ^^ help: convert the identifier to snake case: `le`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1388:17
[INFO] [stdout]      |
[INFO] [stdout] 1388 |             let L = self.edge_lengths[spoke_e.index()];
[INFO] [stdout]      |                 ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1458:13
[INFO] [stdout]      |
[INFO] [stdout] 1458 |             drop(min_iv);
[INFO] [stdout]      |             ^^^^^------^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1458 -             drop(min_iv);
[INFO] [stdout] 1458 +             let _ = min_iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1640:17
[INFO] [stdout]      |
[INFO] [stdout] 1640 |                 drop(iv);
[INFO] [stdout]      |                 ^^^^^--^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1640 -                 drop(iv);
[INFO] [stdout] 1640 +                 let _ = iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:539:29
[INFO] [stdout]     |
[INFO] [stdout] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry {
[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] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry<'_> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `iP` should have a snake case name
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:796:13
[INFO] [stdout]     |
[INFO] [stdout] 796 |         for iP in 0..n_pairs {
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `i_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.16s
[INFO] running `Command { std: "docker" "inspect" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/vertex_position_geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::element_types::*;
[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: `crate::surface::surface_mesh::SurfaceMesh`
[INFO] [stdout]  --> src/surface/intersection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::surface_mesh::SurfaceMesh;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `displacement_length`
[INFO] [stdout]  --> src/surface/intrinsic_triangulation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     displacement_length, normalize_barycentric,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector2`
[INFO] [stdout]   --> src/surface/signed_heat_method.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use nalgebra::Vector2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> src/surface/common_subdivision.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::numerical::{SparseMatrix, Triplet, Vector};
[INFO] [stdout]   |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/surface/common_subdivision.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/geodesic_centroidal_voronoi_tessellation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/polygon_mesh_heat_solver.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Triplet` and `Vector`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::numerical::{SparseMatrix, SquareSolver, Triplet, Vector};
[INFO] [stdout]   |                                                    ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::DVector`
[INFO] [stdout]   --> src/surface/transfer_functions.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nalgebra::DVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/direction_fields.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/boundary_first_flattening.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `triangle_area`
[INFO] [stdout]   --> src/surface/integer_coordinates_intrinsic_triangulation.rs:14:69
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::utilities::elementary_geometry::{layout_triangle_vertex, triangle_area};
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |         todo!("collapse_edge_triangular not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         -------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         todo!("insert_vertex on face not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         ----------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 364 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         todo!("computeVertexInsertionDataGeodesic needs IntrinsicGeometryInterface");
[INFO] [stdout]     |         ---------------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 168 |         let boundary_crossings: [Vec<f64>; 3] = [Vec::new(), Vec::new(), Vec::new()];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |             todo!("vector heat solver solve");
[INFO] [stdout]     |             --------------------------------- any code following this expression is unreachable
[INFO] [stdout] 199 |             x0
[INFO] [stdout]     |             ^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     todo!("sharedEdge for constraint building");
[INFO] [stdout]     |                     ------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 215 |                     m += 1;
[INFO] [stdout]     |                     ^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:258:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 todo!("Poisson solver solve");
[INFO] [stdout]     |                 ----------------------------- any code following this expression is unreachable
[INFO] [stdout] 258 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 426 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:545:17
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 545 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 572 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `he_a_next`
[INFO] [stdout]    --> src/surface/surface_mesh.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let he_a_next = he_a_center.next(self);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_he_a_next`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/surface/meshio.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                     let base = positions.len();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_options`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:141:35
[INFO] [stdout]     |
[INFO] [stdout] 141 |     edge_is_hittable: &[bool; 3], trace_options: &TraceOptions,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_face`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let start_face = wedge_he.face(mesh);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_face`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut he = c.halfedge().next(&self.mesh);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut trips = Vec::new();
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut m = 0usize;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut div = DVector::<f64>::zeros(v);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/polygon_mesh_heat_solver.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let mut py = p.mul_vector(&yt_dense);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `layout_round` is never read
[INFO] [stdout]    --> src/surface/parameterize.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         layout_round += 1;
[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 `N` is never read
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:21
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                     ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 484 |         N = 0;
[INFO] [stdout]     |         ----- `N` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_iv` is never read
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1655:17
[INFO] [stdout]      |
[INFO] [stdout] 1655 |                 last_iv = iv_idx;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:614:13
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:704:13
[INFO] [stdout]     |
[INFO] [stdout] 704 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:933:21
[INFO] [stdout]     |
[INFO] [stdout] 933 |                 let mut opts = TraceOptions::default();
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_region` is never read
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:786:13
[INFO] [stdout]     |
[INFO] [stdout] 786 |             found_region = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `circumcenter_loc` is never read
[INFO] [stdout]     --> src/surface/integer_coordinates_intrinsic_triangulation.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         circumcenter_loc = normalize_barycentric(circumcenter_loc);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:90:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | /     pub fn get_vertex_property<T>(&self, property_name: &str) -> VertexData<T>
[INFO] [stdout]  91 | |     where
[INFO] [stdout]  92 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | /     pub fn get_halfedge_property<T>(&self, property_name: &str) -> HalfedgeData<T>
[INFO] [stdout] 111 | |     where
[INFO] [stdout] 112 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | /     pub fn get_corner_property<T>(&self, property_name: &str) -> CornerData<T>
[INFO] [stdout] 131 | |     where
[INFO] [stdout] 132 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | /     pub fn get_edge_property<T>(&self, property_name: &str) -> EdgeData<T>
[INFO] [stdout] 151 | |     where
[INFO] [stdout] 152 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | /     pub fn get_face_property<T>(&self, property_name: &str) -> FaceData<T>
[INFO] [stdout] 171 | |     where
[INFO] [stdout] 172 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | /     pub fn get_boundary_loop_property<T>(&self, property_name: &str) -> BoundaryLoopData<T>
[INFO] [stdout] 191 | |     where
[INFO] [stdout] 192 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | /     pub fn add_vertex_property<T>(&mut self, property_name: &str, data: &VertexData<T>)
[INFO] [stdout] 269 | |     where
[INFO] [stdout] 270 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     pub fn add_halfedge_property<T>(&mut self, property_name: &str, data: &HalfedgeData<T>)
[INFO] [stdout] 285 | |     where
[INFO] [stdout] 286 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 | /     pub fn add_corner_property<T>(&mut self, property_name: &str, data: &CornerData<T>)
[INFO] [stdout] 301 | |     where
[INFO] [stdout] 302 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | /     pub fn add_edge_property<T>(&mut self, property_name: &str, data: &EdgeData<T>)
[INFO] [stdout] 317 | |     where
[INFO] [stdout] 318 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | /     pub fn add_face_property<T>(&mut self, property_name: &str, data: &FaceData<T>)
[INFO] [stdout] 333 | |     where
[INFO] [stdout] 334 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | /     pub fn add_boundary_loop_property<T>(&mut self, property_name: &str, data: &BoundaryLoopData<T>)
[INFO] [stdout] 349 | |     where
[INFO] [stdout] 350 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `WeightedAngle` is more private than the item `FlipEdgeNetwork::wedge_angle_queue`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub wedge_angle_queue: BinaryHeap<WeightedAngle>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `FlipEdgeNetwork::wedge_angle_queue` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `WeightedAngle` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct WeightedAngle(f64, SegmentAngleType, FlipPathSegment);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]   --> src/numerical/positive_definite_solvers.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PositiveDefiniteSolver<T: Scalar + ComplexField> {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 11 |     n_rows: usize,
[INFO] [stdout] 12 |     n_cols: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]  --> src/numerical/square_solvers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SquareSolver<T: Scalar + ComplexField> {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     n_rows: usize,
[INFO] [stdout] 9 |     n_cols: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mesh` is never read
[INFO] [stdout]  --> src/utilities/element_iterators.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RangeIterator<'a, Tag: ElementTag> {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 6 |     mesh: &'a SurfaceMesh,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `face_coords_to_bary_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn face_coords_to_bary_coords(vert_coords: &[Vector2<f64>; 3], face_coord: Vector2<f64>) -> Vector3<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bary_coords_to_face_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn bary_coords_to_face_coords(vert_coords: &[Vector2<f64>; 3], bary: Vector3<f64>) -> Vector2<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let D = zero.d - one.d;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R0` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let R0 = x0 * x0 + zero.pseudo_y * zero.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let R1 = x1 * x1 + one.pseudo_y * one.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ninter` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:412:17
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let mut Ninter = 0;
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `ninter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:421:17
[INFO] [stdout]     |
[INFO] [stdout] 421 |             let D2 = D * D;
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:422:17
[INFO] [stdout]     |
[INFO] [stdout] 422 |             let Q = 0.5 * (R1 - R0 - D2);
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:423:17
[INFO] [stdout]     |
[INFO] [stdout] 423 |             let X = x0 - x1;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let A = X * X - D2;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |             let B = Q * X + D2 * x0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |             let C = Q * Q - D2 * R0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ngood_start` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |         let mut Ngood_start = 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `ngood_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:732:22
[INFO] [stdout]     |
[INFO] [stdout] 732 |                 let (N, map, start) = self.intersect_intervals(pp, &q);
[INFO] [stdout]     |                      ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:928:9
[INFO] [stdout]     |
[INFO] [stdout] 928 |         L: f64,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |         let L1 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling geometry-central v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable `L2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |         let L2 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Le` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1377:13
[INFO] [stdout]      |
[INFO] [stdout] 1377 |         let Le = self.edge_lengths[min_iv.edge];
[INFO] [stdout]      |             ^^ help: convert the identifier to snake case: `le`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1388:17
[INFO] [stdout]      |
[INFO] [stdout] 1388 |             let L = self.edge_lengths[spoke_e.index()];
[INFO] [stdout]      |                 ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1458:13
[INFO] [stdout]      |
[INFO] [stdout] 1458 |             drop(min_iv);
[INFO] [stdout]      |             ^^^^^------^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1458 -             drop(min_iv);
[INFO] [stdout] 1458 +             let _ = min_iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1640:17
[INFO] [stdout]      |
[INFO] [stdout] 1640 |                 drop(iv);
[INFO] [stdout]      |                 ^^^^^--^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1640 -                 drop(iv);
[INFO] [stdout] 1640 +                 let _ = iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:539:29
[INFO] [stdout]     |
[INFO] [stdout] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry {
[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] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry<'_> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `iP` should have a snake case name
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:796:13
[INFO] [stdout]     |
[INFO] [stdout] 796 |         for iP in 0..n_pairs {
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `i_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `geometry_central::numerical::Vector`
[INFO] [stdout]  --> tests/halfedge_geometry_test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use geometry_central::numerical::Vector;
[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: `scalar_part_f64`
[INFO] [stdout]    --> tests/halfedge_geometry_test.rs:429:47
[INFO] [stdout]     |
[INFO] [stdout] 429 |     use geometry_central::numerical::{Vector, scalar_part_f64};
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `positions` is never read
[INFO] [stdout]   --> tests/halfedge_mesh_test.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct MeshAsset {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     positions: Vec<Vector3<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: variable `xA` should have a snake case name
[INFO] [stdout]    --> tests/linear_algebra_test.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let (xA, xB) = decompose_vector(&decomp, &x);
[INFO] [stdout]     |          ^^ help: convert the identifier to snake case: `x_a`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xB` should have a snake case name
[INFO] [stdout]    --> tests/linear_algebra_test.rs:291:14
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let (xA, xB) = decompose_vector(&decomp, &x);
[INFO] [stdout]     |              ^^ help: convert the identifier to snake case: `x_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `yA` should have a snake case name
[INFO] [stdout]    --> tests/linear_algebra_test.rs:298:9
[INFO] [stdout]     |
[INFO] [stdout] 298 |     let yA = sparse_mul_dense(&decomp.aa, &xA) + sparse_mul_dense(&decomp.ab, &xB);
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `y_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `yB` should have a snake case name
[INFO] [stdout]    --> tests/linear_algebra_test.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let yB = sparse_mul_dense(&decomp.ba, &xA) + sparse_mul_dense(&decomp.bb, &xB);
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `y_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/vertex_position_geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::element_types::*;
[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: `crate::surface::surface_mesh::SurfaceMesh`
[INFO] [stdout]  --> src/surface/intersection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::surface::surface_mesh::SurfaceMesh;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `displacement_length`
[INFO] [stdout]  --> src/surface/intrinsic_triangulation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     displacement_length, normalize_barycentric,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/surface/normal_coordinates.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stdout]  --> src/surface/signed_heat_method.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector2`
[INFO] [stdout]   --> src/surface/signed_heat_method.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use nalgebra::Vector2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> src/surface/common_subdivision.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::numerical::{SparseMatrix, Triplet, Vector};
[INFO] [stdout]   |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/surface/common_subdivision.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/geodesic_centroidal_voronoi_tessellation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stdout]  --> src/surface/polygon_mesh_heat_solver.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stdout] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stdout] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Triplet` and `Vector`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::numerical::{SparseMatrix, SquareSolver, Triplet, Vector};
[INFO] [stdout]   |                                                    ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/transfer_functions.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::DVector`
[INFO] [stdout]   --> src/surface/transfer_functions.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nalgebra::DVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/direction_fields.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::surface::element_types::*`
[INFO] [stdout]  --> src/surface/boundary_first_flattening.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::surface::element_types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `triangle_area`
[INFO] [stdout]   --> src/surface/integer_coordinates_intrinsic_triangulation.rs:14:69
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::utilities::elementary_geometry::{layout_triangle_vertex, triangle_area};
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |         todo!("collapse_edge_triangular not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         -------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 290 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/mutation_manager.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         todo!("insert_vertex on face not yet implemented on SurfaceMesh");
[INFO] [stdout]     |         ----------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 364 |         let new_v = Vertex::new_null();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         todo!("computeVertexInsertionDataGeodesic needs IntrinsicGeometryInterface");
[INFO] [stdout]     |         ---------------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 168 |         let boundary_crossings: [Vec<f64>; 3] = [Vec::new(), Vec::new(), Vec::new()];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |             todo!("vector heat solver solve");
[INFO] [stdout]     |             --------------------------------- any code following this expression is unreachable
[INFO] [stdout] 199 |             x0
[INFO] [stdout]     |             ^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     todo!("sharedEdge for constraint building");
[INFO] [stdout]     |                     ------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 215 |                     m += 1;
[INFO] [stdout]     |                     ^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:258:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 todo!("Poisson solver solve");
[INFO] [stdout]     |                 ----------------------------- any code following this expression is unreachable
[INFO] [stdout] 258 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 426 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:545:17
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 545 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 todo!("cotan laplacian not available");
[INFO] [stdout]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 572 |                 DVector::<f64>::zeros(v)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `he_a_next`
[INFO] [stdout]    --> src/surface/surface_mesh.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let he_a_next = he_a_center.next(self);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_he_a_next`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/surface/meshio.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                     let base = positions.len();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_options`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:141:35
[INFO] [stdout]     |
[INFO] [stdout] 141 |     edge_is_hittable: &[bool; 3], trace_options: &TraceOptions,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_face`
[INFO] [stdout]    --> src/surface/trace_geodesic.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let start_face = wedge_he.face(mesh);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_face`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/normal_coordinates.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut he = c.halfedge().next(&self.mesh);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut trips = Vec::new();
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut m = 0usize;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signed_heat_method.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut div = DVector::<f64>::zeros(v);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/polygon_mesh_heat_solver.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let mut py = p.mul_vector(&yt_dense);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/surface/rich_surface_mesh_data.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut writer = Writer::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `layout_round` is never read
[INFO] [stdout]    --> src/surface/parameterize.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         layout_round += 1;
[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 `N` is never read
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:21
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                     ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 484 |         N = 0;
[INFO] [stdout]     |         ----- `N` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_iv` is never read
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1655:17
[INFO] [stdout]      |
[INFO] [stdout] 1655 |                 last_iv = iv_idx;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:614:13
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let mut pts = result.path_points;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:704:13
[INFO] [stdout]     |
[INFO] [stdout] 704 |         let mut opts = TraceOptions::default();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:933:21
[INFO] [stdout]     |
[INFO] [stdout] 933 |                 let mut opts = TraceOptions::default();
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_region` is never read
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:786:13
[INFO] [stdout]     |
[INFO] [stdout] 786 |             found_region = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `circumcenter_loc` is never read
[INFO] [stdout]     --> src/surface/integer_coordinates_intrinsic_triangulation.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         circumcenter_loc = normalize_barycentric(circumcenter_loc);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:90:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | /     pub fn get_vertex_property<T>(&self, property_name: &str) -> VertexData<T>
[INFO] [stdout]  91 | |     where
[INFO] [stdout]  92 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 | /     pub fn get_halfedge_property<T>(&self, property_name: &str) -> HalfedgeData<T>
[INFO] [stdout] 111 | |     where
[INFO] [stdout] 112 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | /     pub fn get_corner_property<T>(&self, property_name: &str) -> CornerData<T>
[INFO] [stdout] 131 | |     where
[INFO] [stdout] 132 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | /     pub fn get_edge_property<T>(&self, property_name: &str) -> EdgeData<T>
[INFO] [stdout] 151 | |     where
[INFO] [stdout] 152 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | /     pub fn get_face_property<T>(&self, property_name: &str) -> FaceData<T>
[INFO] [stdout] 171 | |     where
[INFO] [stdout] 172 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | /     pub fn get_boundary_loop_property<T>(&self, property_name: &str) -> BoundaryLoopData<T>
[INFO] [stdout] 191 | |     where
[INFO] [stdout] 192 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::get_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_vertex_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | /     pub fn add_vertex_property<T>(&mut self, property_name: &str, data: &VertexData<T>)
[INFO] [stdout] 269 | |     where
[INFO] [stdout] 270 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_vertex_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_halfedge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     pub fn add_halfedge_property<T>(&mut self, property_name: &str, data: &HalfedgeData<T>)
[INFO] [stdout] 285 | |     where
[INFO] [stdout] 286 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_halfedge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_corner_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 | /     pub fn add_corner_property<T>(&mut self, property_name: &str, data: &CornerData<T>)
[INFO] [stdout] 301 | |     where
[INFO] [stdout] 302 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_corner_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_edge_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | /     pub fn add_edge_property<T>(&mut self, property_name: &str, data: &EdgeData<T>)
[INFO] [stdout] 317 | |     where
[INFO] [stdout] 318 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_edge_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_face_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | /     pub fn add_face_property<T>(&mut self, property_name: &str, data: &FaceData<T>)
[INFO] [stdout] 333 | |     where
[INFO] [stdout] 334 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_face_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_boundary_loop_property`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | /     pub fn add_boundary_loop_property<T>(&mut self, property_name: &str, data: &BoundaryLoopData<T>)
[INFO] [stdout] 349 | |     where
[INFO] [stdout] 350 | |         T: Clone + Default + PlyScalar,
[INFO] [stdout]     | |_______________________________________^ method `RichSurfaceMeshData::add_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `WeightedAngle` is more private than the item `FlipEdgeNetwork::wedge_angle_queue`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub wedge_angle_queue: BinaryHeap<WeightedAngle>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `FlipEdgeNetwork::wedge_angle_queue` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `WeightedAngle` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/surface/flip_geodesics.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct WeightedAngle(f64, SegmentAngleType, FlipPathSegment);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]   --> src/numerical/positive_definite_solvers.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PositiveDefiniteSolver<T: Scalar + ComplexField> {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 11 |     n_rows: usize,
[INFO] [stdout] 12 |     n_cols: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_cols` is never read
[INFO] [stdout]  --> src/numerical/square_solvers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SquareSolver<T: Scalar + ComplexField> {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     n_rows: usize,
[INFO] [stdout] 9 |     n_cols: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mesh` is never read
[INFO] [stdout]  --> src/utilities/element_iterators.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RangeIterator<'a, Tag: ElementTag> {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 6 |     mesh: &'a SurfaceMesh,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `face_coords_to_bary_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn face_coords_to_bary_coords(vert_coords: &[Vector2<f64>; 3], face_coord: Vector2<f64>) -> Vector3<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bary_coords_to_face_coords` is never used
[INFO] [stdout]   --> src/surface/trace_geodesic.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn bary_coords_to_face_coords(vert_coords: &[Vector2<f64>; 3], bary: Vector3<f64>) -> Vector2<f64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let mut N = 0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let D = zero.d - one.d;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R0` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let R0 = x0 * x0 + zero.pseudo_y * zero.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:409:13
[INFO] [stdout]     |
[INFO] [stdout] 409 |         let R1 = x1 * x1 + one.pseudo_y * one.pseudo_y;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ninter` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:412:17
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let mut Ninter = 0;
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `ninter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:421:17
[INFO] [stdout]     |
[INFO] [stdout] 421 |             let D2 = D * D;
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:422:17
[INFO] [stdout]     |
[INFO] [stdout] 422 |             let Q = 0.5 * (R1 - R0 - D2);
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:423:17
[INFO] [stdout]     |
[INFO] [stdout] 423 |             let X = x0 - x1;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let A = X * X - D2;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |             let B = Q * X + D2 * x0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 |             let C = Q * Q - D2 * R0;
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ngood_start` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |         let mut Ngood_start = 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `ngood_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:732:22
[INFO] [stdout]     |
[INFO] [stdout] 732 |                 let (N, map, start) = self.intersect_intervals(pp, &q);
[INFO] [stdout]     |                      ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:928:9
[INFO] [stdout]     |
[INFO] [stdout] 928 |         L: f64,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L1` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |         let L1 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L2` should have a snake case name
[INFO] [stdout]    --> src/surface/exact_geodesics.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |         let L2 =
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `l2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Le` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1377:13
[INFO] [stdout]      |
[INFO] [stdout] 1377 |         let Le = self.edge_lengths[min_iv.edge];
[INFO] [stdout]      |             ^^ help: convert the identifier to snake case: `le`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1388:17
[INFO] [stdout]      |
[INFO] [stdout] 1388 |             let L = self.edge_lengths[spoke_e.index()];
[INFO] [stdout]      |                 ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1458:13
[INFO] [stdout]      |
[INFO] [stdout] 1458 |             drop(min_iv);
[INFO] [stdout]      |             ^^^^^------^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1458 -             drop(min_iv);
[INFO] [stdout] 1458 +             let _ = min_iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]     --> src/surface/exact_geodesics.rs:1640:17
[INFO] [stdout]      |
[INFO] [stdout] 1640 |                 drop(iv);
[INFO] [stdout]      |                 ^^^^^--^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      argument has type `IntervalData`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1640 -                 drop(iv);
[INFO] [stdout] 1640 +                 let _ = iv;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/surface/signpost_intrinsic_triangulation.rs:539:29
[INFO] [stdout]     |
[INFO] [stdout] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry {
[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] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry<'_> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `iP` should have a snake case name
[INFO] [stdout]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:796:13
[INFO] [stdout]     |
[INFO] [stdout] 796 |         for iP in 0..n_pairs {
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `i_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.36s
[INFO] running `Command { std: "docker" "inspect" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::surface::element_types::*`
[INFO] [stderr]  --> src/surface/vertex_position_geometry.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::surface::element_types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::surface_mesh::SurfaceMesh`
[INFO] [stderr]  --> src/surface/intersection.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::surface::surface_mesh::SurfaceMesh;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `displacement_length`
[INFO] [stderr]  --> src/surface/intrinsic_triangulation.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     displacement_length, normalize_barycentric,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stderr]  --> src/surface/normal_coordinates.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f64::consts::PI`
[INFO] [stderr]  --> src/surface/normal_coordinates.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::f64::consts::PI;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stderr]  --> src/surface/signed_heat_method.rs:4:29
[INFO] [stderr]   |
[INFO] [stderr] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^^
[INFO] [stderr] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stderr] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stderr] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::barycentric_coordinate_helpers::normalize_barycentric`
[INFO] [stderr]  --> src/surface/signed_heat_method.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::surface::barycentric_coordinate_helpers::normalize_barycentric;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nalgebra::Vector2`
[INFO] [stderr]   --> src/surface/signed_heat_method.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use nalgebra::Vector2;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Vector`
[INFO] [stderr]  --> src/surface/common_subdivision.rs:3:47
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::numerical::{SparseMatrix, Triplet, Vector};
[INFO] [stderr]   |                                               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `VecDeque`
[INFO] [stderr]   --> src/surface/common_subdivision.rs:15:33
[INFO] [stderr]    |
[INFO] [stderr] 15 | use std::collections::{HashMap, VecDeque};
[INFO] [stderr]    |                                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::element_types::*`
[INFO] [stderr]  --> src/surface/geodesic_centroidal_voronoi_tessellation.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::surface::element_types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SquareSolver`, `complex_to_real`, `identity_matrix`, and `solve`
[INFO] [stderr]  --> src/surface/polygon_mesh_heat_solver.rs:4:29
[INFO] [stderr]   |
[INFO] [stderr] 4 |     block_decompose_square, complex_to_real, decompose_vector, horizontal_stack,
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^^
[INFO] [stderr] 5 |     identity_matrix, reassemble_vector, shift_diagonal, solve, solve_positive_definite,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^                                     ^^^^^
[INFO] [stderr] 6 |     solve_square, vertical_stack, LinearSolver, PositiveDefiniteSolver, SparseMatrix,
[INFO] [stderr] 7 |     SquareSolver, Triplet, Vector,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Triplet` and `Vector`
[INFO] [stderr]  --> src/surface/transfer_functions.rs:4:52
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::numerical::{SparseMatrix, SquareSolver, Triplet, Vector};
[INFO] [stderr]   |                                                    ^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::element_types::*`
[INFO] [stderr]  --> src/surface/transfer_functions.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::surface::element_types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nalgebra::DVector`
[INFO] [stderr]   --> src/surface/transfer_functions.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use nalgebra::DVector;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::element_types::*`
[INFO] [stderr]  --> src/surface/direction_fields.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::surface::element_types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::surface::element_types::*`
[INFO] [stderr]  --> src/surface/boundary_first_flattening.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::surface::element_types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `triangle_area`
[INFO] [stderr]   --> src/surface/integer_coordinates_intrinsic_triangulation.rs:14:69
[INFO] [stderr]    |
[INFO] [stderr] 14 | use crate::utilities::elementary_geometry::{layout_triangle_vertex, triangle_area};
[INFO] [stderr]    |                                                                     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/surface/mutation_manager.rs:290:9
[INFO] [stderr]     |
[INFO] [stderr] 289 |         todo!("collapse_edge_triangular not yet implemented on SurfaceMesh");
[INFO] [stderr]     |         -------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 290 |         let new_v = Vertex::new_null();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/surface/mutation_manager.rs:364:9
[INFO] [stderr]     |
[INFO] [stderr] 363 |         todo!("insert_vertex on face not yet implemented on SurfaceMesh");
[INFO] [stderr]     |         ----------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 364 |         let new_v = Vertex::new_null();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/surface/normal_coordinates.rs:168:9
[INFO] [stderr]     |
[INFO] [stderr] 167 |         todo!("computeVertexInsertionDataGeodesic needs IntrinsicGeometryInterface");
[INFO] [stderr]     |         ---------------------------------------------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 168 |         let boundary_crossings: [Vec<f64>; 3] = [Vec::new(), Vec::new(), Vec::new()];
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:199:13
[INFO] [stderr]     |
[INFO] [stderr] 198 |             todo!("vector heat solver solve");
[INFO] [stderr]     |             --------------------------------- any code following this expression is unreachable
[INFO] [stderr] 199 |             x0
[INFO] [stderr]     |             ^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:215:21
[INFO] [stderr]     |
[INFO] [stderr] 214 |                     todo!("sharedEdge for constraint building");
[INFO] [stderr]     |                     ------------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 215 |                     m += 1;
[INFO] [stderr]     |                     ^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:258:17
[INFO] [stderr]     |
[INFO] [stderr] 257 |                 todo!("Poisson solver solve");
[INFO] [stderr]     |                 ----------------------------- any code following this expression is unreachable
[INFO] [stderr] 258 |                 DVector::<f64>::zeros(v)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:426:17
[INFO] [stderr]     |
[INFO] [stderr] 425 |                 todo!("cotan laplacian not available");
[INFO] [stderr]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 426 |                 DVector::<f64>::zeros(v)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:545:17
[INFO] [stderr]     |
[INFO] [stderr] 544 |                 todo!("cotan laplacian not available");
[INFO] [stderr]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 545 |                 DVector::<f64>::zeros(v)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:572:17
[INFO] [stderr]     |
[INFO] [stderr] 571 |                 todo!("cotan laplacian not available");
[INFO] [stderr]     |                 -------------------------------------- any code following this expression is unreachable
[INFO] [stderr] 572 |                 DVector::<f64>::zeros(v)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `he_a_next`
[INFO] [stderr]    --> src/surface/surface_mesh.rs:277:13
[INFO] [stderr]     |
[INFO] [stderr] 277 |         let he_a_next = he_a_center.next(self);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_he_a_next`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base`
[INFO] [stderr]    --> src/surface/meshio.rs:158:25
[INFO] [stderr]     |
[INFO] [stderr] 158 |                     let base = positions.len();
[INFO] [stderr]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `trace_options`
[INFO] [stderr]    --> src/surface/trace_geodesic.rs:141:35
[INFO] [stderr]     |
[INFO] [stderr] 141 |     edge_is_hittable: &[bool; 3], trace_options: &TraceOptions,
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start_face`
[INFO] [stderr]    --> src/surface/trace_geodesic.rs:331:9
[INFO] [stderr]     |
[INFO] [stderr] 331 |     let start_face = wedge_he.face(mesh);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_face`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/normal_coordinates.rs:363:13
[INFO] [stderr]     |
[INFO] [stderr] 363 |         let mut he = c.halfedge().next(&self.mesh);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:207:17
[INFO] [stderr]     |
[INFO] [stderr] 207 |             let mut trips = Vec::new();
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:208:17
[INFO] [stderr]     |
[INFO] [stderr] 208 |             let mut m = 0usize;
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signed_heat_method.rs:237:13
[INFO] [stderr]     |
[INFO] [stderr] 237 |         let mut div = DVector::<f64>::zeros(v);
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/polygon_mesh_heat_solver.rs:413:13
[INFO] [stderr]     |
[INFO] [stderr] 413 |         let mut py = p.mul_vector(&yt_dense);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/surface/rich_surface_mesh_data.rs:69:13
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let mut writer = Writer::new();
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/surface/rich_surface_mesh_data.rs:80:13
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let mut writer = Writer::new();
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `layout_round` is never read
[INFO] [stderr]    --> src/surface/parameterize.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |         layout_round += 1;
[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 `N` is never read
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:382:21
[INFO] [stderr]     |
[INFO] [stderr] 382 |         let mut N = 0;
[INFO] [stderr]     |                     ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 484 |         N = 0;
[INFO] [stderr]     |         ----- `N` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `last_iv` is never read
[INFO] [stderr]     --> src/surface/exact_geodesics.rs:1655:17
[INFO] [stderr]      |
[INFO] [stderr] 1655 |                 last_iv = iv_idx;
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:571:13
[INFO] [stderr]     |
[INFO] [stderr] 571 |         let mut pts = result.path_points;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:614:13
[INFO] [stderr]     |
[INFO] [stderr] 614 |         let mut pts = result.path_points;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:670:13
[INFO] [stderr]     |
[INFO] [stderr] 670 |         let mut opts = TraceOptions::default();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:704:13
[INFO] [stderr]     |
[INFO] [stderr] 704 |         let mut opts = TraceOptions::default();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:933:21
[INFO] [stderr]     |
[INFO] [stderr] 933 |                 let mut opts = TraceOptions::default();
[INFO] [stderr]     |                     ----^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `found_region` is never read
[INFO] [stderr]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:786:13
[INFO] [stderr]     |
[INFO] [stderr] 786 |             found_region = true;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `circumcenter_loc` is never read
[INFO] [stderr]     --> src/surface/integer_coordinates_intrinsic_triangulation.rs:1096:9
[INFO] [stderr]      |
[INFO] [stderr] 1096 |         circumcenter_loc = normalize_barycentric(circumcenter_loc);
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_vertex_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:90:5
[INFO] [stderr]     |
[INFO] [stderr]  90 | /     pub fn get_vertex_property<T>(&self, property_name: &str) -> VertexData<T>
[INFO] [stderr]  91 | |     where
[INFO] [stderr]  92 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_vertex_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_bounds)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_halfedge_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:110:5
[INFO] [stderr]     |
[INFO] [stderr] 110 | /     pub fn get_halfedge_property<T>(&self, property_name: &str) -> HalfedgeData<T>
[INFO] [stderr] 111 | |     where
[INFO] [stderr] 112 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_halfedge_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_corner_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:130:5
[INFO] [stderr]     |
[INFO] [stderr] 130 | /     pub fn get_corner_property<T>(&self, property_name: &str) -> CornerData<T>
[INFO] [stderr] 131 | |     where
[INFO] [stderr] 132 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_corner_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_edge_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 | /     pub fn get_edge_property<T>(&self, property_name: &str) -> EdgeData<T>
[INFO] [stderr] 151 | |     where
[INFO] [stderr] 152 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_edge_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_face_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:170:5
[INFO] [stderr]     |
[INFO] [stderr] 170 | /     pub fn get_face_property<T>(&self, property_name: &str) -> FaceData<T>
[INFO] [stderr] 171 | |     where
[INFO] [stderr] 172 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_face_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::get_boundary_loop_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:190:5
[INFO] [stderr]     |
[INFO] [stderr] 190 | /     pub fn get_boundary_loop_property<T>(&self, property_name: &str) -> BoundaryLoopData<T>
[INFO] [stderr] 191 | |     where
[INFO] [stderr] 192 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::get_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_vertex_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:268:5
[INFO] [stderr]     |
[INFO] [stderr] 268 | /     pub fn add_vertex_property<T>(&mut self, property_name: &str, data: &VertexData<T>)
[INFO] [stderr] 269 | |     where
[INFO] [stderr] 270 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_vertex_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_halfedge_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:284:5
[INFO] [stderr]     |
[INFO] [stderr] 284 | /     pub fn add_halfedge_property<T>(&mut self, property_name: &str, data: &HalfedgeData<T>)
[INFO] [stderr] 285 | |     where
[INFO] [stderr] 286 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_halfedge_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_corner_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:300:5
[INFO] [stderr]     |
[INFO] [stderr] 300 | /     pub fn add_corner_property<T>(&mut self, property_name: &str, data: &CornerData<T>)
[INFO] [stderr] 301 | |     where
[INFO] [stderr] 302 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_corner_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_edge_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:316:5
[INFO] [stderr]     |
[INFO] [stderr] 316 | /     pub fn add_edge_property<T>(&mut self, property_name: &str, data: &EdgeData<T>)
[INFO] [stderr] 317 | |     where
[INFO] [stderr] 318 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_edge_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_face_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:332:5
[INFO] [stderr]     |
[INFO] [stderr] 332 | /     pub fn add_face_property<T>(&mut self, property_name: &str, data: &FaceData<T>)
[INFO] [stderr] 333 | |     where
[INFO] [stderr] 334 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_face_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PlyScalar` is more private than the item `RichSurfaceMeshData::add_boundary_loop_property`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:348:5
[INFO] [stderr]     |
[INFO] [stderr] 348 | /     pub fn add_boundary_loop_property<T>(&mut self, property_name: &str, data: &BoundaryLoopData<T>)
[INFO] [stderr] 349 | |     where
[INFO] [stderr] 350 | |         T: Clone + Default + PlyScalar,
[INFO] [stderr]     | |_______________________________________^ method `RichSurfaceMeshData::add_boundary_loop_property` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but trait `PlyScalar` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/surface/rich_surface_mesh_data.rs:408:1
[INFO] [stderr]     |
[INFO] [stderr] 408 | pub(crate) trait PlyScalar: Clone {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `WeightedAngle` is more private than the item `FlipEdgeNetwork::wedge_angle_queue`
[INFO] [stderr]    --> src/surface/flip_geodesics.rs:201:5
[INFO] [stderr]     |
[INFO] [stderr] 201 |     pub wedge_angle_queue: BinaryHeap<WeightedAngle>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `FlipEdgeNetwork::wedge_angle_queue` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `WeightedAngle` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/surface/flip_geodesics.rs:107:1
[INFO] [stderr]     |
[INFO] [stderr] 107 | struct WeightedAngle(f64, SegmentAngleType, FlipPathSegment);
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `n_cols` is never read
[INFO] [stderr]   --> src/numerical/positive_definite_solvers.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct PositiveDefiniteSolver<T: Scalar + ComplexField> {
[INFO] [stderr]    |            ---------------------- field in this struct
[INFO] [stderr] 11 |     n_rows: usize,
[INFO] [stderr] 12 |     n_cols: usize,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `n_cols` is never read
[INFO] [stderr]  --> src/numerical/square_solvers.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct SquareSolver<T: Scalar + ComplexField> {
[INFO] [stderr]   |            ------------ field in this struct
[INFO] [stderr] 8 |     n_rows: usize,
[INFO] [stderr] 9 |     n_cols: usize,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `mesh` is never read
[INFO] [stderr]  --> src/utilities/element_iterators.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct RangeIterator<'a, Tag: ElementTag> {
[INFO] [stderr]   |            ------------- field in this struct
[INFO] [stderr] 6 |     mesh: &'a SurfaceMesh,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `face_coords_to_bary_coords` is never used
[INFO] [stderr]   --> src/surface/trace_geodesic.rs:41:4
[INFO] [stderr]    |
[INFO] [stderr] 41 | fn face_coords_to_bary_coords(vert_coords: &[Vector2<f64>; 3], face_coord: Vector2<f64>) -> Vector3<f64> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bary_coords_to_face_coords` is never used
[INFO] [stderr]   --> src/surface/trace_geodesic.rs:48:4
[INFO] [stderr]    |
[INFO] [stderr] 48 | fn bary_coords_to_face_coords(vert_coords: &[Vector2<f64>; 3], bary: Vector3<f64>) -> Vector2<f64> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:382:17
[INFO] [stderr]     |
[INFO] [stderr] 382 |         let mut N = 0;
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `D` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:405:13
[INFO] [stderr]     |
[INFO] [stderr] 405 |         let D = zero.d - one.d;
[INFO] [stderr]     |             ^ help: convert the identifier to snake case: `d`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R0` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:408:13
[INFO] [stderr]     |
[INFO] [stderr] 408 |         let R0 = x0 * x0 + zero.pseudo_y * zero.pseudo_y;
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `r0`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R1` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:409:13
[INFO] [stderr]     |
[INFO] [stderr] 409 |         let R1 = x1 * x1 + one.pseudo_y * one.pseudo_y;
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `r1`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Ninter` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:412:17
[INFO] [stderr]     |
[INFO] [stderr] 412 |         let mut Ninter = 0;
[INFO] [stderr]     |                 ^^^^^^ help: convert the identifier to snake case: `ninter`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `D2` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:421:17
[INFO] [stderr]     |
[INFO] [stderr] 421 |             let D2 = D * D;
[INFO] [stderr]     |                 ^^ help: convert the identifier to snake case: `d2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Q` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:422:17
[INFO] [stderr]     |
[INFO] [stderr] 422 |             let Q = 0.5 * (R1 - R0 - D2);
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `X` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:423:17
[INFO] [stderr]     |
[INFO] [stderr] 423 |             let X = x0 - x1;
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `A` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:425:17
[INFO] [stderr]     |
[INFO] [stderr] 425 |             let A = X * X - D2;
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case: `a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `B` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:426:17
[INFO] [stderr]     |
[INFO] [stderr] 426 |             let B = Q * X + D2 * x0;
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case: `b`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `C` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:427:17
[INFO] [stderr]     |
[INFO] [stderr] 427 |             let C = Q * Q - D2 * R0;
[INFO] [stderr]     |                 ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Ngood_start` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:462:17
[INFO] [stderr]     |
[INFO] [stderr] 462 |         let mut Ngood_start = 1;
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `ngood_start`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:732:22
[INFO] [stderr]     |
[INFO] [stderr] 732 |                 let (N, map, start) = self.intersect_intervals(pp, &q);
[INFO] [stderr]     |                      ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:928:9
[INFO] [stderr]     |
[INFO] [stderr] 928 |         L: f64,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L1` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:982:13
[INFO] [stderr]     |
[INFO] [stderr] 982 |         let L1 =
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `l1`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L2` should have a snake case name
[INFO] [stderr]    --> src/surface/exact_geodesics.rs:999:13
[INFO] [stderr]     |
[INFO] [stderr] 999 |         let L2 =
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `l2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Le` should have a snake case name
[INFO] [stderr]     --> src/surface/exact_geodesics.rs:1377:13
[INFO] [stderr]      |
[INFO] [stderr] 1377 |         let Le = self.edge_lengths[min_iv.edge];
[INFO] [stderr]      |             ^^ help: convert the identifier to snake case: `le`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]     --> src/surface/exact_geodesics.rs:1388:17
[INFO] [stderr]      |
[INFO] [stderr] 1388 |             let L = self.edge_lengths[spoke_e.index()];
[INFO] [stderr]      |                 ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stderr]     --> src/surface/exact_geodesics.rs:1458:13
[INFO] [stderr]      |
[INFO] [stderr] 1458 |             drop(min_iv);
[INFO] [stderr]      |             ^^^^^------^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  argument has type `IntervalData`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]      |
[INFO] [stderr] 1458 -             drop(min_iv);
[INFO] [stderr] 1458 +             let _ = min_iv;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stderr]     --> src/surface/exact_geodesics.rs:1640:17
[INFO] [stderr]      |
[INFO] [stderr] 1640 |                 drop(iv);
[INFO] [stderr]      |                 ^^^^^--^
[INFO] [stderr]      |                      |
[INFO] [stderr]      |                      argument has type `IntervalData`
[INFO] [stderr]      |
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]      |
[INFO] [stderr] 1640 -                 drop(iv);
[INFO] [stderr] 1640 +                 let _ = iv;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/surface/signpost_intrinsic_triangulation.rs:539:29
[INFO] [stderr]     |
[INFO] [stderr] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry {
[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] 539 |     fn build_intrinsic_geom(&self) -> VertexPositionGeometry<'_> {
[INFO] [stderr]     |                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `iP` should have a snake case name
[INFO] [stderr]    --> src/surface/integer_coordinates_intrinsic_triangulation.rs:796:13
[INFO] [stderr]     |
[INFO] [stderr] 796 |         for iP in 0..n_pairs {
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `i_p`
[INFO] [stderr] 
[INFO] [stderr] warning: `geometry-central` (lib) generated 88 warnings (run `cargo fix --lib -p geometry-central` to apply 35 suggestions)
[INFO] [stderr] warning: `geometry-central` (lib test) generated 88 warnings (88 duplicates)
[INFO] [stderr] warning: field `positions` is never read
[INFO] [stderr]   --> tests/halfedge_mesh_test.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | struct MeshAsset {
[INFO] [stderr]    |        --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 22 |     positions: Vec<Vector3<f64>>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `geometry_central::numerical::Vector`
[INFO] [stderr]  --> tests/halfedge_geometry_test.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use geometry_central::numerical::Vector;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `scalar_part_f64`
[INFO] [stderr]    --> tests/halfedge_geometry_test.rs:429:47
[INFO] [stderr]     |
[INFO] [stderr] 429 |     use geometry_central::numerical::{Vector, scalar_part_f64};
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `xA` should have a snake case name
[INFO] [stderr]    --> tests/linear_algebra_test.rs:291:10
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let (xA, xB) = decompose_vector(&decomp, &x);
[INFO] [stderr]     |          ^^ help: convert the identifier to snake case: `x_a`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `xB` should have a snake case name
[INFO] [stderr]    --> tests/linear_algebra_test.rs:291:14
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let (xA, xB) = decompose_vector(&decomp, &x);
[INFO] [stderr]     |              ^^ help: convert the identifier to snake case: `x_b`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `yA` should have a snake case name
[INFO] [stderr]    --> tests/linear_algebra_test.rs:298:9
[INFO] [stderr]     |
[INFO] [stderr] 298 |     let yA = sparse_mul_dense(&decomp.aa, &xA) + sparse_mul_dense(&decomp.ab, &xB);
[INFO] [stderr]     |         ^^ help: convert the identifier to snake case: `y_a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `yB` should have a snake case name
[INFO] [stderr]    --> tests/linear_algebra_test.rs:299:9
[INFO] [stderr]     |
[INFO] [stderr] 299 |     let yB = sparse_mul_dense(&decomp.ba, &xA) + sparse_mul_dense(&decomp.bb, &xB);
[INFO] [stderr]     |         ^^ help: convert the identifier to snake case: `y_b`
[INFO] [stderr] 
[INFO] [stderr] warning: `geometry-central` (test "halfedge_mesh_test") generated 1 warning
[INFO] [stderr] warning: `geometry-central` (test "halfedge_geometry_test") generated 2 warnings (run `cargo fix --test "halfedge_geometry_test" -p geometry-central` to apply 2 suggestions)
[INFO] [stderr] warning: `geometry-central` (test "linear_algebra_test") generated 4 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/geometry_central-f82db400d239d13f)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/flip_geodesic_test.rs (/opt/rustwide/target/debug/deps/flip_geodesic_test-361e2e9b2780eb81)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test heat_method_distance_spot_test ... FAILED
[INFO] [stdout] test heat_method_distance_tet_test ... FAILED
[INFO] [stdout] test heat_method_multi_source_test ... FAILED
[INFO] [stdout] test trace_geodesic_face_test ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- heat_method_distance_spot_test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'heat_method_distance_spot_test' (1655) panicked at tests/flip_geodesic_test.rs:15:47:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "Cannot open /opt/rustwide/workdir/geometry-central/test/assets/spot.ply: No such file or directory (os error 2)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b829d72bd58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b829d72bd58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b829d742b8a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b829d742b8a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5b829d730622 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5b829d730622 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5b829d70ab66 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b829d70ab66 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b829d7242a9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b829d5c5e4c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5b829d5c5e4c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b829d724462 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5b829d724462 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b829d70ac22 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b829d6ffdf9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b829d70b93d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b829d74331c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b829d743092 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b829d5b6dcc - <core[8fb95b77d25ab6c8]::result::Result<(geometry_central[5a2b496d8bff1c02]::surface::surface_mesh::SurfaceMesh, alloc[a7ee25936407c584]::vec::Vec<nalgebra[942757af986f5798]::base::matrix::Matrix<f64, nalgebra[942757af986f5798]::base::dimension::Const<3usize>, nalgebra[942757af986f5798]::base::dimension::Const<1usize>, nalgebra[942757af986f5798]::base::array_storage::ArrayStorage<f64, 3usize, 1usize>>>), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5b829d5b6dcc - flip_geodesic_test[4f1924fed3bbf30f]::load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:15:47
[INFO] [stdout]   22:     0x5b829d5b7eb8 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_spot_test
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:33:29
[INFO] [stdout]   23:     0x5b829d5b6a37 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_spot_test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:32:36
[INFO] [stdout]   24:     0x5b829d5b8e36 - <flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_spot_test::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b829d5b8f2b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5b829d5b8f2b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5b829d5c67a5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5b829d5c00b4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5b829d5c00b4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5b829d5c9822 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5b829d5c9822 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5b829d72b6bf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   44:     0x5b829d72b6bf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x73d8331baaa4 - <unknown>
[INFO] [stdout]   46:     0x73d833247a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- heat_method_distance_tet_test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'heat_method_distance_tet_test' (1656) panicked at tests/flip_geodesic_test.rs:15:47:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "OBJ parse error in /opt/rustwide/workdir/geometry-central/test/assets/tet.obj: I/O error loading a .obj file: No such file or directory (os error 2)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b829d72bd58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b829d72bd58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b829d742b8a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b829d742b8a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5b829d730622 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5b829d730622 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5b829d70ab66 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b829d70ab66 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b829d7242a9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b829d5c5e4c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5b829d5c5e4c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b829d724462 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5b829d724462 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b829d70ac22 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b829d6ffdf9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b829d70b93d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b829d74331c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b829d743092 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b829d5b6dcc - <core[8fb95b77d25ab6c8]::result::Result<(geometry_central[5a2b496d8bff1c02]::surface::surface_mesh::SurfaceMesh, alloc[a7ee25936407c584]::vec::Vec<nalgebra[942757af986f5798]::base::matrix::Matrix<f64, nalgebra[942757af986f5798]::base::dimension::Const<3usize>, nalgebra[942757af986f5798]::base::dimension::Const<1usize>, nalgebra[942757af986f5798]::base::array_storage::ArrayStorage<f64, 3usize, 1usize>>>), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5b829d5b6dcc - flip_geodesic_test[4f1924fed3bbf30f]::load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:15:47
[INFO] [stdout]   22:     0x5b829d5b7208 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_tet_test
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:20:29
[INFO] [stdout]   23:     0x5b829d5b69d7 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_tet_test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:19:35
[INFO] [stdout]   24:     0x5b829d5b8db6 - <flip_geodesic_test[4f1924fed3bbf30f]::heat_method_distance_tet_test::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b829d5b8f2b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5b829d5b8f2b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5b829d5c67a5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5b829d5c00b4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5b829d5c00b4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5b829d5c9822 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5b829d5c9822 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5b829d72b6bf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   44:     0x5b829d72b6bf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x73d8331baaa4 - <unknown>
[INFO] [stdout]   46:     0x73d833247a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- heat_method_multi_source_test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'heat_method_multi_source_test' (1657) panicked at tests/flip_geodesic_test.rs:15:47:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "OBJ parse error in /opt/rustwide/workdir/geometry-central/test/assets/tet.obj: I/O error loading a .obj file: No such file or directory (os error 2)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b829d72bd58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b829d72bd58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b829d742b8a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b829d742b8a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5b829d730622 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5b829d730622 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5b829d70ab66 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b829d70ab66 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b829d7242a9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b829d5c5e4c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5b829d5c5e4c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b829d724462 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5b829d724462 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b829d70ac22 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b829d6ffdf9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b829d70b93d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b829d74331c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b829d743092 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b829d5b6dcc - <core[8fb95b77d25ab6c8]::result::Result<(geometry_central[5a2b496d8bff1c02]::surface::surface_mesh::SurfaceMesh, alloc[a7ee25936407c584]::vec::Vec<nalgebra[942757af986f5798]::base::matrix::Matrix<f64, nalgebra[942757af986f5798]::base::dimension::Const<3usize>, nalgebra[942757af986f5798]::base::dimension::Const<1usize>, nalgebra[942757af986f5798]::base::array_storage::ArrayStorage<f64, 3usize, 1usize>>>), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5b829d5b6dcc - flip_geodesic_test[4f1924fed3bbf30f]::load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:15:47
[INFO] [stdout]   22:     0x5b829d5b7788 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_multi_source_test
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:44:29
[INFO] [stdout]   23:     0x5b829d5b6a07 - flip_geodesic_test[4f1924fed3bbf30f]::heat_method_multi_source_test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:43:35
[INFO] [stdout]   24:     0x5b829d5b8df6 - <flip_geodesic_test[4f1924fed3bbf30f]::heat_method_multi_source_test::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b829d5b8f2b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5b829d5b8f2b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5b829d5c67a5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5b829d5c00b4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5b829d5c00b4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5b829d5c9822 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5b829d5c9822 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5b829d72b6bf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   44:     0x5b829d72b6bf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x73d8331baaa4 - <unknown>
[INFO] [stdout]   46:     0x73d833247a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- trace_geodesic_face_test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'trace_geodesic_face_test' (1658) panicked at tests/flip_geodesic_test.rs:15:47:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "OBJ parse error in /opt/rustwide/workdir/geometry-central/test/assets/tet.obj: I/O error loading a .obj file: No such file or directory (os error 2)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b829d72bd58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b829d72bd58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b829d72bd58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b829d742b8a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b829d742b8a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5b829d730622 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5b829d730622 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5b829d70ab66 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b829d70ab66 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b829d7242a9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b829d5c5e4c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5b829d5c5e4c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b829d724462 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5b829d724462 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b829d70ac22 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b829d6ffdf9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b829d70b93d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b829d74331c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b829d743092 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b829d5b6dcc - <core[8fb95b77d25ab6c8]::result::Result<(geometry_central[5a2b496d8bff1c02]::surface::surface_mesh::SurfaceMesh, alloc[a7ee25936407c584]::vec::Vec<nalgebra[942757af986f5798]::base::matrix::Matrix<f64, nalgebra[942757af986f5798]::base::dimension::Const<3usize>, nalgebra[942757af986f5798]::base::dimension::Const<1usize>, nalgebra[942757af986f5798]::base::array_storage::ArrayStorage<f64, 3usize, 1usize>>>), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5b829d5b6dcc - flip_geodesic_test[4f1924fed3bbf30f]::load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:15:47
[INFO] [stdout]   22:     0x5b829d5b6ea5 - flip_geodesic_test[4f1924fed3bbf30f]::trace_geodesic_face_test
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:57:29
[INFO] [stdout]   23:     0x5b829d5b69a7 - flip_geodesic_test[4f1924fed3bbf30f]::trace_geodesic_face_test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/flip_geodesic_test.rs:56:30
[INFO] [stdout]   24:     0x5b829d5b8d76 - <flip_geodesic_test[4f1924fed3bbf30f]::trace_geodesic_face_test::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b829d5b8f2b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5b829d5b8f2b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5b829d5c67a5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5b829d5c67a5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5b829d5c67a5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5b829d5c00b4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5b829d5c00b4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5b829d5c9822 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5b829d5c9822 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5b829d5c9822 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5b829d5c9822 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5b829d72b6bf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   44:     0x5b829d72b6bf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x73d8331baaa4 - <unknown>
[INFO] [stdout]   46:     0x73d833247a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     heat_method_distance_spot_test
[INFO] [stdout]     heat_method_distance_tet_test
[INFO] [stdout]     heat_method_multi_source_test
[INFO] [stdout]     trace_geodesic_face_test
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test flip_geodesic_test`
[INFO] running `Command { std: "docker" "inspect" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87", kill_on_drop: false }`
[INFO] [stdout] 5f4beb3e778ffb3dc5d06b66812871e48c0a8d1756598849120a1e1e8bec3d87
