[INFO] cloning repository https://github.com/erikaderstedt/snabbkarta
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/erikaderstedt/snabbkarta" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferikaderstedt%2Fsnabbkarta", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferikaderstedt%2Fsnabbkarta'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0b98d7a158168764f05aa26d17e9c4b0f654ce16
[INFO] checking erikaderstedt/snabbkarta against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferikaderstedt%2Fsnabbkarta" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/erikaderstedt/snabbkarta
[INFO] finished tweaking git repo https://github.com/erikaderstedt/snabbkarta
[INFO] tweaked toml for git repo https://github.com/erikaderstedt/snabbkarta written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/erikaderstedt/snabbkarta on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/erikaderstedt/snabbkarta 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded paste v1.0.9
[INFO] [stderr]   Downloaded minreq v2.0.3
[INFO] [stderr]   Downloaded webpki v0.21.2
[INFO] [stderr]   Downloaded untrusted v0.7.0
[INFO] [stderr]   Downloaded osm-xml v0.6.2
[INFO] [stderr]   Downloaded colored v1.9.2
[INFO] [stderr]   Downloaded dbase v0.1.0
[INFO] [stderr]   Downloaded getopts v0.2.19
[INFO] [stderr]   Downloaded roots v0.0.6
[INFO] [stderr]   Downloaded indicatif v0.13.0
[INFO] [stderr]   Downloaded bumpalo v3.1.2
[INFO] [stderr]   Downloaded simba v0.5.1
[INFO] [stderr]   Downloaded laz v0.6.4
[INFO] [stderr]   Downloaded console v0.9.1
[INFO] [stderr]   Downloaded delaunator v0.2.0
[INFO] [stderr]   Downloaded regex v1.3.3
[INFO] [stderr]   Downloaded nalgebra v0.27.1
[INFO] [stderr]   Downloaded regex-syntax v0.6.13
[INFO] [stderr]   Downloaded rustls v0.16.0
[INFO] [stderr]   Downloaded flo_curves v0.3.1
[INFO] [stderr]   Downloaded ring v0.16.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2e7ae1a89dc5424bae769ca3ecab98f92d59929eb2c94f4f5f300f05c1544446
[INFO] running `Command { std: "docker" "start" "-a" "2e7ae1a89dc5424bae769ca3ecab98f92d59929eb2c94f4f5f300f05c1544446", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e7ae1a89dc5424bae769ca3ecab98f92d59929eb2c94f4f5f300f05c1544446", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e7ae1a89dc5424bae769ca3ecab98f92d59929eb2c94f4f5f300f05c1544446", kill_on_drop: false }`
[INFO] [stdout] 2e7ae1a89dc5424bae769ca3ecab98f92d59929eb2c94f4f5f300f05c1544446
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 632e1276267fc57f0f3458bd7892f09764b807808decc524937ef50658d5278e
[INFO] running `Command { std: "docker" "start" "-a" "632e1276267fc57f0f3458bd7892f09764b807808decc524937ef50658d5278e", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling cc v1.0.50
[INFO] [stderr]    Compiling crossbeam-utils v0.8.1
[INFO] [stderr]    Compiling syn v1.0.14
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling const_fn v0.4.3
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]     Checking untrusted v0.7.0
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]     Checking pdqselect v0.1.0
[INFO] [stderr]     Checking num_cpus v1.12.0
[INFO] [stderr]     Checking regex-syntax v0.6.13
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking log v0.4.8
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking termios v0.3.1
[INFO] [stderr]     Checking clicolors-control v1.0.1
[INFO] [stderr]     Checking threadpool v1.7.1
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]    Compiling paste v1.0.9
[INFO] [stderr]     Checking xml-rs v0.7.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]    Compiling snabbkarta v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking roots v0.0.6
[INFO] [stderr]     Checking smallvec v1.2.0
[INFO] [stderr]     Checking colored v1.9.2
[INFO] [stderr]     Checking getopts v0.2.19
[INFO] [stderr]     Checking delaunator v0.2.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.1
[INFO] [stderr]     Checking osm-xml v0.6.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling ring v0.16.10
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]     Checking flo_curves v0.3.1
[INFO] [stderr]     Checking regex v1.3.3
[INFO] [stderr]     Checking rayon-core v1.9.0
[INFO] [stderr]     Checking rstar v0.2.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-complex v0.4.2
[INFO] [stderr]     Checking chrono v0.4.10
[INFO] [stderr]     Checking geo-types v0.4.3
[INFO] [stderr]     Checking simba v0.5.1
[INFO] [stderr]     Checking console v0.9.1
[INFO] [stderr]     Checking backtrace v0.3.43
[INFO] [stderr]     Checking dbase v0.1.0
[INFO] [stderr]     Checking indicatif v0.13.0
[INFO] [stderr]     Checking laz v0.6.4
[INFO] [stderr]     Checking webpki v0.21.2
[INFO] [stderr]     Checking sct v0.6.0
[INFO] [stderr]     Checking rustls v0.16.0
[INFO] [stderr]     Checking webpki-roots v0.18.0
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]     Checking nalgebra v0.27.1
[INFO] [stderr]     Checking minreq v2.0.3
[INFO] [stderr]     Checking failure v0.1.6
[INFO] [stderr]     Checking geo v0.12.2
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/wmm.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/wmm.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `islands`
[INFO] [stdout]   --> src/cliffs.rs:92:25
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let (halfedges, islands) = cliff.split_into_outer_edge_and_islands();
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_islands`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `create_ml_data`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let create_ml_data = matches.opt_present("m");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_create_ml_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Point` and `Rectangle` are never constructed
[INFO] [stdout]   --> src/ocad.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ObjectType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 32 |     Point(f64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Rectangle,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ObjectType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `point_object` is never used
[INFO] [stdout]   --> src/ocad.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Object {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn point_object(symbol_number: i32, location: &Point, angle: f64) -> Object {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `point_3d_to_record_coordinates` is never used
[INFO] [stdout]   --> src/geometry.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PointConverter {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn point_3d_to_record_coordinates(&self, point: &Point3D) -> [i32;3] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance_3d_to`, `cross`, and `normalized` are never used
[INFO] [stdout]   --> src/geometry.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Point3D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn distance_3d_to(&self, other: &Point3D) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn cross(&self, other: &Point3D) -> Point3D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn normalized(&self) -> Point3D {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lower` and `upper` are never read
[INFO] [stdout]    --> src/geometry.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Bounds {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 102 |     pub lower: Point3D,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 103 |     pub upper: Point3D,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Bounds` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains_2d` and `outset_by` are never used
[INFO] [stdout]    --> src/geometry.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Bounds {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 107 |     pub fn contains_2d(&self, point: &Point3D) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn outset_by(&self, distance: f64) -> Bounds {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `normal_as_point` and `z_normal` are never used
[INFO] [stdout]    --> src/geometry.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | impl Plane {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 237 |
[INFO] [stdout] 238 |     pub fn normal_as_point(&self) -> Point3D {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn z_normal(&self) -> f64 { self.normal[2] }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `areas` and `bounds` are never read
[INFO] [stdout]   --> src/dtm.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct DigitalTerrainModel {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub areas: Vec<f64>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub bounds: Bounds,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DigitalTerrainModel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `z_coordinate_at_xy` is never used
[INFO] [stdout]    --> src/dtm.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl DigitalTerrainModel {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn z_coordinate_at_xy(&self, point: &Point3D) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `base_elevation` is never read
[INFO] [stdout]   --> src/contours.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Contour {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     base_elevation: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Contour` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondensedRecord` is never constructed
[INFO] [stdout]   --> src/ml_input_data.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct CondensedRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MachineLearningInputData` is never constructed
[INFO] [stdout]   --> src/ml_input_data.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MachineLearningInputData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `construct_hashmap` is never used
[INFO] [stdout]   --> src/ml_input_data.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MachineLearningInputData {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn construct_hashmap( records: &Vec<PointDataRecord>, 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_partial_ml_input_data` is never used
[INFO] [stdout]   --> src/ml_input_data.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn construct_partial_ml_input_data( records: &Vec<PointDataRecord>,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGridPosition` is never constructed
[INFO] [stdout]  --> src/hexgrid.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HexGridPosition {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGrid` is never constructed
[INFO] [stdout]   --> src/hexgrid.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HexGrid {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGridIterator` is never constructed
[INFO] [stdout]   --> src/hexgrid.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct HexGridIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `iter_over_points_in_bounds` and `covering_bounds` are never used
[INFO] [stdout]   --> src/hexgrid.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl HexGrid {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 27 |     pub fn iter_over_points_in_bounds(&self, bounds: &Bounds) -> HexGridIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn covering_bounds(bounds: &Bounds, size: f64) -> HexGrid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Err(f) => { panic!(f.to_string()) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Err(f) => { panic!("{}", f.to_string()) }
[INFO] [stdout]    |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `islands`
[INFO] [stdout]   --> src/cliffs.rs:92:25
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let (halfedges, islands) = cliff.split_into_outer_edge_and_islands();
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_islands`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `create_ml_data`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let create_ml_data = matches.opt_present("m");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_create_ml_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Point` and `Rectangle` are never constructed
[INFO] [stdout]   --> src/ocad.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ObjectType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 32 |     Point(f64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Rectangle,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ObjectType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `point_object` is never used
[INFO] [stdout]   --> src/ocad.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Object {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn point_object(symbol_number: i32, location: &Point, angle: f64) -> Object {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `point_3d_to_record_coordinates` is never used
[INFO] [stdout]   --> src/geometry.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PointConverter {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn point_3d_to_record_coordinates(&self, point: &Point3D) -> [i32;3] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance_3d_to`, `cross`, and `normalized` are never used
[INFO] [stdout]   --> src/geometry.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Point3D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn distance_3d_to(&self, other: &Point3D) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn cross(&self, other: &Point3D) -> Point3D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn normalized(&self) -> Point3D {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lower` and `upper` are never read
[INFO] [stdout]    --> src/geometry.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Bounds {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 102 |     pub lower: Point3D,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 103 |     pub upper: Point3D,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Bounds` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains_2d` and `outset_by` are never used
[INFO] [stdout]    --> src/geometry.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Bounds {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 107 |     pub fn contains_2d(&self, point: &Point3D) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn outset_by(&self, distance: f64) -> Bounds {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `normal_as_point` and `z_normal` are never used
[INFO] [stdout]    --> src/geometry.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | impl Plane {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 237 |
[INFO] [stdout] 238 |     pub fn normal_as_point(&self) -> Point3D {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn z_normal(&self) -> f64 { self.normal[2] }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `areas` and `bounds` are never read
[INFO] [stdout]   --> src/dtm.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct DigitalTerrainModel {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub areas: Vec<f64>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub bounds: Bounds,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DigitalTerrainModel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `z_coordinate_at_xy` is never used
[INFO] [stdout]    --> src/dtm.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl DigitalTerrainModel {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn z_coordinate_at_xy(&self, point: &Point3D) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `base_elevation` is never read
[INFO] [stdout]   --> src/contours.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Contour {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     base_elevation: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Contour` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondensedRecord` is never constructed
[INFO] [stdout]   --> src/ml_input_data.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct CondensedRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MachineLearningInputData` is never constructed
[INFO] [stdout]   --> src/ml_input_data.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MachineLearningInputData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `construct_hashmap` is never used
[INFO] [stdout]   --> src/ml_input_data.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MachineLearningInputData {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn construct_hashmap( records: &Vec<PointDataRecord>, 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_partial_ml_input_data` is never used
[INFO] [stdout]   --> src/ml_input_data.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn construct_partial_ml_input_data( records: &Vec<PointDataRecord>,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGridPosition` is never constructed
[INFO] [stdout]  --> src/hexgrid.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HexGridPosition {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGrid` is never constructed
[INFO] [stdout]   --> src/hexgrid.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HexGrid {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexGridIterator` is never constructed
[INFO] [stdout]   --> src/hexgrid.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct HexGridIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `iter_over_points_in_bounds` and `covering_bounds` are never used
[INFO] [stdout]   --> src/hexgrid.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl HexGrid {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 27 |     pub fn iter_over_points_in_bounds(&self, bounds: &Bounds) -> HexGridIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn covering_bounds(bounds: &Bounds, size: f64) -> HexGrid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Err(f) => { panic!(f.to_string()) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Err(f) => { panic!("{}", f.to_string()) }
[INFO] [stdout]    |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.16s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nalgebra v0.27.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 8`
[INFO] running `Command { std: "docker" "inspect" "632e1276267fc57f0f3458bd7892f09764b807808decc524937ef50658d5278e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "632e1276267fc57f0f3458bd7892f09764b807808decc524937ef50658d5278e", kill_on_drop: false }`
[INFO] [stdout] 632e1276267fc57f0f3458bd7892f09764b807808decc524937ef50658d5278e
