[INFO] cloning repository https://github.com/dudyashnik/fumomaker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dudyashnik/fumomaker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdudyashnik%2Ffumomaker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdudyashnik%2Ffumomaker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 27b6ced45b99ac632f5ea348a0d08f9ab39fd60d
[INFO] checking dudyashnik/fumomaker against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdudyashnik%2Ffumomaker" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dudyashnik/fumomaker
[INFO] finished tweaking git repo https://github.com/dudyashnik/fumomaker
[INFO] tweaked toml for git repo https://github.com/dudyashnik/fumomaker written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dudyashnik/fumomaker on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dudyashnik/fumomaker 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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62
[INFO] running `Command { std: "docker" "start" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62", 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" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling miniquad v0.4.11
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking memchr v2.8.3
[INFO] [stderr]     Checking flate2 v1.1.10
[INFO] [stderr]     Checking maplit v1.0.2
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking fontdue v0.9.4
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling enum-as-inner v0.7.0
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking macroquad v0.4.16
[INFO] [stderr]     Checking fumomaker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BTreeMap`, `HashMap`, and `HashSet`
[INFO] [stdout]  --> src/embroidery.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, BTreeMap, HashSet, HashMap};
[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::util::*`
[INFO] [stdout]  --> src/embroidery.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/embroidery.rs:124:35
[INFO] [stdout]     |
[INFO] [stdout] 124 |     enum StitchDir { Left, Right };
[INFO] [stdout]     |                                   ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/editor_visual.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/editor_visual.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         'draw: {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/drawing.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let d = (|x| { if (x < 0.5) {1.0} else {0.0} })(intensity);
[INFO] [stdout]    |                       ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 65 -     let d = (|x| { if (x < 0.5) {1.0} else {0.0} })(intensity);
[INFO] [stdout] 65 +     let d = (|x| { if x < 0.5 {1.0} else {0.0} })(intensity);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/drawing.rs:269:18
[INFO] [stdout]     |
[INFO] [stdout] 269 |         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout]     |                  ^                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 269 -         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout] 269 +         for i in if closed {1..p.len() + 1} else {1..p.len()} {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/drawing.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout]     |                  ^                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 286 -         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout] 286 +         for i in if closed {1..p.len() + 1} else {1..p.len()} {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/editor.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyCode` and `is_key_down`
[INFO] [stdout]  --> src/editor.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use macroquad::input::{is_key_down, mouse_wheel, KeyCode};
[INFO] [stdout]   |                        ^^^^^^^^^^^               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_shift`
[INFO] [stdout]  --> src/editor.rs:7:82
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::drawing::{get_mouse_position_vec2, is_mouse_near_dot, is_no_mod_down, is_shift, DOT_RADIUS};
[INFO] [stdout]   |                                                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/editor.rs:452:23
[INFO] [stdout]     |
[INFO] [stdout] 452 |             } else if (self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k})){
[INFO] [stdout]     |                       ^                                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 452 -             } else if (self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k})){
[INFO] [stdout] 452 +             } else if self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k}) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `HashMap`
[INFO] [stdout]  --> src/trenches.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, BTreeMap, HashSet, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]  --> src/trenches.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::color::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use macroquad::color::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use macroquad::texture::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::shapes::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use macroquad::shapes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeSet`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::collections::BTreeSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `enum_as_inner::EnumAsInner`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use enum_as_inner::EnumAsInner;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::*`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use util::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `editor::*`
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use editor::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `HashMap`, and `HashSet`
[INFO] [stdout]  --> src/embroidery.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, BTreeMap, HashSet, HashMap};
[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::util::*`
[INFO] [stdout]  --> src/embroidery.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/embroidery.rs:124:35
[INFO] [stdout]     |
[INFO] [stdout] 124 |     enum StitchDir { Left, Right };
[INFO] [stdout]     |                                   ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/editor_visual.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/editor_visual.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         'draw: {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/drawing.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let d = (|x| { if (x < 0.5) {1.0} else {0.0} })(intensity);
[INFO] [stdout]    |                       ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 65 -     let d = (|x| { if (x < 0.5) {1.0} else {0.0} })(intensity);
[INFO] [stdout] 65 +     let d = (|x| { if x < 0.5 {1.0} else {0.0} })(intensity);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/drawing.rs:269:18
[INFO] [stdout]     |
[INFO] [stdout] 269 |         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout]     |                  ^                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 269 -         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout] 269 +         for i in if closed {1..p.len() + 1} else {1..p.len()} {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/drawing.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout]     |                  ^                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 286 -         for i in (if closed {1..p.len() + 1} else {1..p.len()}) {
[INFO] [stdout] 286 +         for i in if closed {1..p.len() + 1} else {1..p.len()} {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/editor.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyCode` and `is_key_down`
[INFO] [stdout]  --> src/editor.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use macroquad::input::{is_key_down, mouse_wheel, KeyCode};
[INFO] [stdout]   |                        ^^^^^^^^^^^               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_shift`
[INFO] [stdout]  --> src/editor.rs:7:82
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::drawing::{get_mouse_position_vec2, is_mouse_near_dot, is_no_mod_down, is_shift, DOT_RADIUS};
[INFO] [stdout]   |                                                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/editor.rs:452:23
[INFO] [stdout]     |
[INFO] [stdout] 452 |             } else if (self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k})){
[INFO] [stdout]     |                       ^                                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 452 -             } else if (self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k})){
[INFO] [stdout] 452 +             } else if self.t_started_moving.is_some() && cam_movement_keys.iter().all(|&k|{k}) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `HashMap`
[INFO] [stdout]  --> src/trenches.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, BTreeMap, HashSet, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]  --> src/trenches.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::color::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use macroquad::color::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use macroquad::texture::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::shapes::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use macroquad::shapes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeSet`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::collections::BTreeSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `enum_as_inner::EnumAsInner`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use enum_as_inner::EnumAsInner;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::*`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use util::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `editor::*`
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use editor::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/embroidery.rs:103:39
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut res: Option<StitchPath> = None;
[INFO] [stdout]     |                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 355 |     res = Some(StitchPath {start: st.start.unwrap(), stitches: st.stitches});
[INFO] [stdout]     |     --- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/embroidery.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let mut stitches: Vec<Stitch> = Vec::new();
[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: unused variable: `stitches`
[INFO] [stdout]    --> src/embroidery.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let mut stitches: Vec<Stitch> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stitches`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `side`
[INFO] [stdout]    --> src/embroidery.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |             let side = left * (if w < 0. {
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_side`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/embroidery.rs:416:19
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let mut res = None;
[INFO] [stdout]     |                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 427 |             res = Some(path_2)
[INFO] [stdout]     |             --- `res` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]    --> src/embroidery.rs:447:15
[INFO] [stdout]     |
[INFO] [stdout] 447 |         for (&obj_id, g_obj) in &scene.objects{
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grp_id`
[INFO] [stdout]    --> src/embroidery.rs:469:15
[INFO] [stdout]     |
[INFO] [stdout] 469 |         for (&grp_id, group) in &scene.area_groups {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_grp_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid`
[INFO] [stdout]    --> src/editor_visual.rs:239:15
[INFO] [stdout]     |
[INFO] [stdout] 239 |         for (&gid, group) in &scene.area_groups {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_gid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mov`
[INFO] [stdout]    --> src/editor_visual.rs:407:19
[INFO] [stdout]     |
[INFO] [stdout] 407 |         for (&id, mov) in &scene.movements {
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/embroidery.rs:103:39
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut res: Option<StitchPath> = None;
[INFO] [stdout]     |                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 355 |     res = Some(StitchPath {start: st.start.unwrap(), stitches: st.stitches});
[INFO] [stdout]     |     --- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/embroidery.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let mut stitches: Vec<Stitch> = Vec::new();
[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: unused variable: `stitches`
[INFO] [stdout]    --> src/embroidery.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let mut stitches: Vec<Stitch> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stitches`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `side`
[INFO] [stdout]    --> src/embroidery.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |             let side = left * (if w < 0. {
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_side`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/embroidery.rs:416:19
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let mut res = None;
[INFO] [stdout]     |                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 427 |             res = Some(path_2)
[INFO] [stdout]     |             --- `res` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]    --> src/embroidery.rs:447:15
[INFO] [stdout]     |
[INFO] [stdout] 447 |         for (&obj_id, g_obj) in &scene.objects{
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grp_id`
[INFO] [stdout]    --> src/embroidery.rs:469:15
[INFO] [stdout]     |
[INFO] [stdout] 469 |         for (&grp_id, group) in &scene.area_groups {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_grp_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/trenches.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut fixed: Vec<Fixed> = perimeters.iter().map(| perim_id: &usize| -> Option<Fixed> {
[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/trenches.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut sgegs: Vec<Sgeg> = fixed.iter().enumerate().flat_map(|(fp_id, perim): (usize, &Fixed)| {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `invert` is never used
[INFO] [stdout]   --> src/scene.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl MovementNode {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn invert(opt: Self) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_points_mut` is never used
[INFO] [stdout]   --> src/scene.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | impl Shape {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn get_points_mut(&mut self) -> &mut Vec<Vec2> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid`
[INFO] [stdout]    --> src/editor_visual.rs:239:15
[INFO] [stdout]     |
[INFO] [stdout] 239 |         for (&gid, group) in &scene.area_groups {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_gid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_VEC_LIGHT_BLUE` is never used
[INFO] [stdout]   --> src/drawing.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const COLOR_VEC_LIGHT_BLUE: Vec3 = vec3(0.5, 0.6, 1.);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_VEC_PURPLE` is never used
[INFO] [stdout]   --> src/drawing.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const COLOR_VEC_PURPLE: Vec3 = vec3(0.8, 0., 1.);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DrawnPathStyle` is never used
[INFO] [stdout]    --> src/drawing.rs:103:6
[INFO] [stdout]     |
[INFO] [stdout] 103 | enum DrawnPathStyle {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_decor_square` and `to_which_path_segment_we_are_close` are never used
[INFO] [stdout]    --> src/drawing.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Camera {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn draw_decor_square(&self, a: Vec2, rad: f32, inner_color: Color, thickness: f32, perimeter_color: Color){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn to_which_path_segment_we_are_close(&self, path: &[Vec2]) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mov`
[INFO] [stdout]    --> src/editor_visual.rs:407:19
[INFO] [stdout]     |
[INFO] [stdout] 407 |         for (&id, mov) in &scene.movements {
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/trenches.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut fixed: Vec<Fixed> = perimeters.iter().map(| perim_id: &usize| -> Option<Fixed> {
[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/trenches.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut sgegs: Vec<Sgeg> = fixed.iter().enumerate().flat_map(|(fp_id, perim): (usize, &Fixed)| {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `invert` is never used
[INFO] [stdout]   --> src/scene.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl MovementNode {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn invert(opt: Self) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_points_mut` is never used
[INFO] [stdout]   --> src/scene.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | impl Shape {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn get_points_mut(&mut self) -> &mut Vec<Vec2> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_VEC_LIGHT_BLUE` is never used
[INFO] [stdout]   --> src/drawing.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const COLOR_VEC_LIGHT_BLUE: Vec3 = vec3(0.5, 0.6, 1.);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_VEC_PURPLE` is never used
[INFO] [stdout]   --> src/drawing.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const COLOR_VEC_PURPLE: Vec3 = vec3(0.8, 0., 1.);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DrawnPathStyle` is never used
[INFO] [stdout]    --> src/drawing.rs:103:6
[INFO] [stdout]     |
[INFO] [stdout] 103 | enum DrawnPathStyle {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_decor_square` and `to_which_path_segment_we_are_close` are never used
[INFO] [stdout]    --> src/drawing.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Camera {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn draw_decor_square(&self, a: Vec2, rad: f32, inner_color: Color, thickness: f32, perimeter_color: Color){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn to_which_path_segment_we_are_close(&self, path: &[Vec2]) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `maplit`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | maplit = "1.0.2"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `maplit`
[INFO] [stderr] warning: `fumomaker` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.86s
[INFO] running `Command { std: "docker" "inspect" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62", kill_on_drop: false }`
[INFO] [stdout] 037ebab574b560c7b21c59b1b119d3d7771d6bc4cfb05a08e085b9fdccd97c62
