[INFO] fetching crate py_pathfinding 0.1.5...
[INFO] checking py_pathfinding-0.1.5 against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] extracting crate py_pathfinding 0.1.5 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate py_pathfinding 0.1.5
[INFO] finished tweaking crates.io crate py_pathfinding 0.1.5
[INFO] tweaked toml for crates.io crate py_pathfinding 0.1.5 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate py_pathfinding 0.1.5 on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate py_pathfinding 0.1.5 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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e24494ab5ca252a5d6159656354770a982600198bc162788cc9d7115761cdbba
[INFO] running `Command { std: "docker" "start" "-a" "e24494ab5ca252a5d6159656354770a982600198bc162788cc9d7115761cdbba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e24494ab5ca252a5d6159656354770a982600198bc162788cc9d7115761cdbba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e24494ab5ca252a5d6159656354770a982600198bc162788cc9d7115761cdbba", kill_on_drop: false }`
[INFO] [stdout] e24494ab5ca252a5d6159656354770a982600198bc162788cc9d7115761cdbba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a4ca36e7a60913f8f91df1f828526f2203431bfc724de7b98da941bfae3cead9
[INFO] running `Command { std: "docker" "start" "-a" "a4ca36e7a60913f8f91df1f828526f2203431bfc724de7b98da941bfae3cead9", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]    Compiling ndarray v0.13.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking matrixmultiply v0.2.3
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]     Checking py_pathfinding v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/algorithms/astar.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/algorithms/astar.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_neighbor`, `distance`, and `successors` are never used
[INFO] [stdout]   --> src/algorithms/astar.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Point2d {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 37 |     fn add_neighbor(&self, other: (i32, i32)) -> Point2d {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn distance(&self, other: &Self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn successors(&self) -> Vec<(Point2d, u32)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/algorithms/astar.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manhattan_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn manhattan_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SQRT_2_MINUS_2` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | static SQRT_2_MINUS_2: f32 = SQRT_2 - 2.0;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `octal_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn octal_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euclidean_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn euclidean_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `no_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_path` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn construct_path(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathFinder` is never constructed
[INFO] [stdout]    --> src/algorithms/astar.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct PathFinder {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_grid` and `find_path` are never used
[INFO] [stdout]    --> src/algorithms/astar.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl PathFinder {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 158 |     fn update_grid(&mut self, grid: Array2<u8>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn find_path(&self, source: &Point2d, target: &Point2d) -> Option<Vec<Point2d>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_point_in_grid` is never used
[INFO] [stdout]    --> src/algorithms/jps.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn new_point_in_grid(&self, point: &Point2d, direction: Direction) -> Option<Point2d> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance` and `successors` are never used
[INFO] [stdout]   --> src/algorithms/astar.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Point2d {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn distance(&self, other: &Self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn successors(&self) -> Vec<(Point2d, u32)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `grid` and `came_from_grid` are never read
[INFO] [stdout]    --> src/algorithms/astar.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct PathFinder {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 152 |     grid: Array2<u8>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 153 |     came_from_grid: Array2<u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_grid` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 158 |     fn update_grid(&mut self, grid: Array2<u8>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_point_in_grid` is never used
[INFO] [stdout]    --> src/algorithms/jps.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn new_point_in_grid(&self, point: &Point2d, direction: Direction) -> Option<Point2d> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `cell_update` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(cell_update)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `cell_update` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(cell_update)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/algorithms/astar.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_neighbor`, `distance`, and `successors` are never used
[INFO] [stdout]   --> src/algorithms/astar.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Point2d {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 37 |     fn add_neighbor(&self, other: (i32, i32)) -> Point2d {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn distance(&self, other: &Self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn successors(&self) -> Vec<(Point2d, u32)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/algorithms/astar.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manhattan_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn manhattan_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SQRT_2_MINUS_2` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | static SQRT_2_MINUS_2: f32 = SQRT_2 - 2.0;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `octal_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn octal_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euclidean_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn euclidean_heuristic(source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `no_heuristic` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_path` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn construct_path(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathFinder` is never constructed
[INFO] [stdout]    --> src/algorithms/astar.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct PathFinder {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_grid` and `find_path` are never used
[INFO] [stdout]    --> src/algorithms/astar.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl PathFinder {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 158 |     fn update_grid(&mut self, grid: Array2<u8>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn find_path(&self, source: &Point2d, target: &Point2d) -> Option<Vec<Point2d>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_point_in_grid` is never used
[INFO] [stdout]    --> src/algorithms/jps.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn new_point_in_grid(&self, point: &Point2d, direction: Direction) -> Option<Point2d> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         file.write_fmt(format_args!("{},{}\n", x, y));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let _ = file.write_fmt(format_args!("{},{}\n", x, y));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/algorithms/astar.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn no_heuristic(_source: &Point2d, target: &Point2d) -> f32 {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance` and `successors` are never used
[INFO] [stdout]   --> src/algorithms/astar.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Point2d {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn distance(&self, other: &Self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn successors(&self) -> Vec<(Point2d, u32)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `grid` and `came_from_grid` are never read
[INFO] [stdout]    --> src/algorithms/astar.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct PathFinder {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 152 |     grid: Array2<u8>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 153 |     came_from_grid: Array2<u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_grid` is never used
[INFO] [stdout]    --> src/algorithms/astar.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 158 |     fn update_grid(&mut self, grid: Array2<u8>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_point_in_grid` is never used
[INFO] [stdout]    --> src/algorithms/jps.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl PathFinder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn new_point_in_grid(&self, point: &Point2d, direction: Direction) -> Option<Point2d> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         file.write_fmt(format_args!("{},{}\n", x, y));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let _ = file.write_fmt(format_args!("{},{}\n", x, y));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.64s
[INFO] running `Command { std: "docker" "inspect" "a4ca36e7a60913f8f91df1f828526f2203431bfc724de7b98da941bfae3cead9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4ca36e7a60913f8f91df1f828526f2203431bfc724de7b98da941bfae3cead9", kill_on_drop: false }`
[INFO] [stdout] a4ca36e7a60913f8f91df1f828526f2203431bfc724de7b98da941bfae3cead9
