[INFO] fetching crate shapemaker 1.1.0...
[INFO] testing shapemaker-1.1.0 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate shapemaker 1.1.0 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate shapemaker 1.1.0 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate shapemaker 1.1.0
[INFO] finished tweaking crates.io crate shapemaker 1.1.0
[INFO] tweaked toml for crates.io crate shapemaker 1.1.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate crates.io crate shapemaker 1.1.0 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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded chunked_transfer v1.5.0
[INFO] [stderr]   Downloaded rust-analyzer v0.0.1
[INFO] [stderr]   Downloaded svg v0.17.0
[INFO] [stderr]   Downloaded chrono-human-duration v0.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2d55e4e7b1ad04323bbfd2e1114f25c8eba991d109936b03ebb12604b3dd1b7b
[INFO] running `Command { std: "docker" "start" "-a" "2d55e4e7b1ad04323bbfd2e1114f25c8eba991d109936b03ebb12604b3dd1b7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2d55e4e7b1ad04323bbfd2e1114f25c8eba991d109936b03ebb12604b3dd1b7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d55e4e7b1ad04323bbfd2e1114f25c8eba991d109936b03ebb12604b3dd1b7b", kill_on_drop: false }`
[INFO] [stdout] 2d55e4e7b1ad04323bbfd2e1114f25c8eba991d109936b03ebb12604b3dd1b7b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 801aad0dd8f8eef50846defd608e789882b62d6b6b2829e4f890e7cc33b79862
[INFO] running `Command { std: "docker" "start" "-a" "801aad0dd8f8eef50846defd608e789882b62d6b6b2829e4f890e7cc33b79862", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.92
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling thiserror v1.0.59
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling bumpalo v3.16.0
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.92
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling either v1.11.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling portable-atomic v1.6.0
[INFO] [stderr]    Compiling serde_json v1.0.116
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling ryu v1.0.17
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling unicode-width v0.1.12
[INFO] [stderr]    Compiling anyhow v1.0.82
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling half v1.8.3
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling svg v0.17.0
[INFO] [stderr]    Compiling hound v3.5.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]    Compiling getrandom v0.2.14
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling indicatif v0.17.8
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling chrono-human-duration v0.1.1
[INFO] [stderr]    Compiling nanoid v0.4.0
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.92
[INFO] [stderr]    Compiling midly v0.5.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.59
[INFO] [stderr]    Compiling serde_derive v1.0.200
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.92
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.92
[INFO] [stderr]    Compiling pest v2.7.10
[INFO] [stderr]    Compiling js-sys v0.3.69
[INFO] [stderr]    Compiling pest_meta v2.7.10
[INFO] [stderr]    Compiling pest_generator v2.7.10
[INFO] [stderr]    Compiling pest_derive v2.7.10
[INFO] [stderr]    Compiling web-sys v0.3.69
[INFO] [stderr]    Compiling docopt v1.1.1
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling handlebars v5.1.2
[INFO] [stderr]    Compiling shapemaker v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/lib.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn main() {}
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fade_out_kick_circles` is never used
[INFO] [stdout]    --> src/main.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_stem_position` is never used
[INFO] [stdout]    --> src/main.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn update_stem_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_kick_happened` is never read
[INFO] [stdout]    --> src/main.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 204 |     first_kick_happened: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_cycle` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle_with_offset` is never used
[INFO] [stdout]    --> src/main.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hat_region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.50s
[INFO] running `Command { std: "docker" "inspect" "801aad0dd8f8eef50846defd608e789882b62d6b6b2829e4f890e7cc33b79862", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "801aad0dd8f8eef50846defd608e789882b62d6b6b2829e4f890e7cc33b79862", kill_on_drop: false }`
[INFO] [stdout] 801aad0dd8f8eef50846defd608e789882b62d6b6b2829e4f890e7cc33b79862
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f05a798ee58d7232abe001c6d4d709a8e89aff9c07671a3639a1fbc69d86054d
[INFO] running `Command { std: "docker" "start" "-a" "f05a798ee58d7232abe001c6d4d709a8e89aff9c07671a3639a1fbc69d86054d", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-analyzer v0.0.1
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/lib.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn main() {}
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shapemaker v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `fade_out_kick_circles` is never used
[INFO] [stdout]    --> src/main.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_stem_position` is never used
[INFO] [stdout]    --> src/main.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn update_stem_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_kick_happened` is never read
[INFO] [stdout]    --> src/main.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 204 |     first_kick_happened: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_cycle` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle_with_offset` is never used
[INFO] [stdout]    --> src/main.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hat_region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.55s
[INFO] running `Command { std: "docker" "inspect" "f05a798ee58d7232abe001c6d4d709a8e89aff9c07671a3639a1fbc69d86054d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f05a798ee58d7232abe001c6d4d709a8e89aff9c07671a3639a1fbc69d86054d", kill_on_drop: false }`
[INFO] [stdout] f05a798ee58d7232abe001c6d4d709a8e89aff9c07671a3639a1fbc69d86054d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b585ffd550d56012a4fed4a7beea5d57137d674192058019b938f6deb7967858
[INFO] running `Command { std: "docker" "start" "-a" "b585ffd550d56012a4fed4a7beea5d57137d674192058019b938f6deb7967858", kill_on_drop: false }`
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stderr]     |             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stderr]  --> src/animation.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stderr]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `console_log`
[INFO] [stderr]   --> src/web.rs:36:14
[INFO] [stderr]    |
[INFO] [stderr] 36 | macro_rules! console_log {
[INFO] [stderr]    |              ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stderr]   --> src/lib.rs:36:16
[INFO] [stderr]    |
[INFO] [stderr] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stderr]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `spacing`
[INFO] [stderr]   --> src/fill.rs:75:51
[INFO] [stderr]    |
[INFO] [stderr] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stderr]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opacity`
[INFO] [stderr]   --> src/web.rs:42:21
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stderr]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `color`
[INFO] [stderr]   --> src/web.rs:42:35
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stderr]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stderr] 
[INFO] [stderr] warning: field `spinner` is never read
[INFO] [stderr]    --> src/lib.rs:189:9
[INFO] [stderr]     |
[INFO] [stderr] 188 | struct SpinState {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] 189 |     pub spinner: ProgressBar,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `main` is never used
[INFO] [stderr]    --> src/lib.rs:225:4
[INFO] [stderr]     |
[INFO] [stderr] 225 | fn main() {}
[INFO] [stderr]     |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PATTERN_SIZE` is never used
[INFO] [stderr]   --> src/fill.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_kick_channel` is never used
[INFO] [stderr]   --> src/midi.rs:21:4
[INFO] [stderr]    |
[INFO] [stderr] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/lib.rs:94:9
[INFO] [stderr]    |
[INFO] [stderr] 94 |         std::fs::create_dir_all(&to);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/lib.rs:96:13
[INFO] [stderr]    |
[INFO] [stderr] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/preview.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     fs::write(output_file, contents);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/preview.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stderr] 83 | |             tiny_http::Header {
[INFO] [stderr] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stderr] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stderr] 86 | |             },
[INFO] [stderr] 87 | |         ));
[INFO] [stderr]    | |__________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:329:17
[INFO] [stderr]     |
[INFO] [stderr] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:617:9
[INFO] [stderr]     |
[INFO] [stderr] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:641:13
[INFO] [stderr]     |
[INFO] [stderr] 641 | /             std::fs::write(
[INFO] [stderr] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stderr] 643 | |                 &frame,
[INFO] [stderr] 644 | |             );
[INFO] [stderr]     | |_____________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 641 |             let _ = std::fs::write(
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:660:29
[INFO] [stderr]     |
[INFO] [stderr] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stderr] 661 | | ...                       frame_svg.clone(),
[INFO] [stderr] 662 | | ...                       *frame_no,
[INFO] [stderr] 663 | | ...                       total_frames,
[INFO] [stderr] ...   |
[INFO] [stderr] 666 | | ...                       resolution,
[INFO] [stderr] 667 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `shapemaker` (lib) generated 20 warnings (run `cargo fix --lib -p shapemaker` to apply 2 suggestions)
[INFO] [stderr] warning: `shapemaker` (lib test) generated 19 warnings (19 duplicates)
[INFO] [stderr] warning: function `fade_out_kick_circles` is never used
[INFO] [stderr]    --> src/main.rs:176:4
[INFO] [stderr]     |
[INFO] [stderr] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_stem_position` is never used
[INFO] [stderr]    --> src/main.rs:184:4
[INFO] [stderr]     |
[INFO] [stderr] 184 | fn update_stem_position(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `first_kick_happened` is never read
[INFO] [stderr]    --> src/main.rs:204:5
[INFO] [stderr]     |
[INFO] [stderr] 203 | struct State {
[INFO] [stderr]     |        ----- field in this struct
[INFO] [stderr] 204 |     first_kick_happened: bool,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `color_cycle` is never used
[INFO] [stderr]    --> src/main.rs:208:4
[INFO] [stderr]     |
[INFO] [stderr] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `region_cycle_with_offset` is never used
[INFO] [stderr]    --> src/main.rs:223:4
[INFO] [stderr]     |
[INFO] [stderr] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hat_region_cycle` is never used
[INFO] [stderr]    --> src/main.rs:235:4
[INFO] [stderr]     |
[INFO] [stderr] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `region_cycle` is never used
[INFO] [stderr]    --> src/main.rs:254:4
[INFO] [stderr]     |
[INFO] [stderr] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `shapemaker` (bin "shapemaker" test) generated 7 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shapemaker-4eeef19ac92ffce8)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test region::test_sub_and_transate_coherence ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shapemaker-28684c1822709540)
[INFO] [stdout] 
[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] [stderr]    Doc-tests shapemaker
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stderr]     |             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/animation.rs - animation::Animation::new (line 21) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/animation.rs - animation::Animation::new (line 21) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Animation`
[INFO] [stdout]  --> src/animation.rs:22:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | Animation::new("example", &|t, canvas, _| {
[INFO] [stdout]   | ^^^^^^^^^ use of undeclared type `Animation`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Animation;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Fill`
[INFO] [stdout]  --> src/animation.rs:23:38
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas.root().object("dot").fill(Fill::Translucent(Color::Red, t))
[INFO] [stdout]   |                                      ^^^^ use of undeclared type `Fill`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rand::Fill;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Fill;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/animation.rs:23:56
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas.root().object("dot").fill(Fill::Translucent(Color::Red, t))
[INFO] [stdout]   |                                                        ^^^^^ use of undeclared type `Color`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/animation.rs - animation::Animation::new (line 21)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "b585ffd550d56012a4fed4a7beea5d57137d674192058019b938f6deb7967858", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b585ffd550d56012a4fed4a7beea5d57137d674192058019b938f6deb7967858", kill_on_drop: false }`
[INFO] [stdout] b585ffd550d56012a4fed4a7beea5d57137d674192058019b938f6deb7967858
[INFO] testing shapemaker-1.1.0 against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] extracting crate shapemaker 1.1.0 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate shapemaker 1.1.0 on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate shapemaker 1.1.0
[INFO] finished tweaking crates.io crate shapemaker 1.1.0
[INFO] tweaked toml for crates.io crate shapemaker 1.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate crates.io crate shapemaker 1.1.0 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" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 91118acf4b1f765ed36e38d71aca37ce78036e72f3a6d7a8a974e026097b832f
[INFO] running `Command { std: "docker" "start" "-a" "91118acf4b1f765ed36e38d71aca37ce78036e72f3a6d7a8a974e026097b832f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "91118acf4b1f765ed36e38d71aca37ce78036e72f3a6d7a8a974e026097b832f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91118acf4b1f765ed36e38d71aca37ce78036e72f3a6d7a8a974e026097b832f", kill_on_drop: false }`
[INFO] [stdout] 91118acf4b1f765ed36e38d71aca37ce78036e72f3a6d7a8a974e026097b832f
[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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 75ed2ffcba3d8e0e8343960ea23c6e589c8ac7b461790798a658f34c46b9fad2
[INFO] running `Command { std: "docker" "start" "-a" "75ed2ffcba3d8e0e8343960ea23c6e589c8ac7b461790798a658f34c46b9fad2", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.92
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling thiserror v1.0.59
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling bumpalo v3.16.0
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling wasm-bindgen v0.2.92
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling serde_json v1.0.116
[INFO] [stderr]    Compiling either v1.11.0
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling portable-atomic v1.6.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling ryu v1.0.17
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling anyhow v1.0.82
[INFO] [stderr]    Compiling unicode-width v0.1.12
[INFO] [stderr]    Compiling half v1.8.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling hound v3.5.1
[INFO] [stderr]    Compiling svg v0.17.0
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling getrandom v0.2.14
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling indicatif v0.17.8
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling nanoid v0.4.0
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling chrono-human-duration v0.1.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.92
[INFO] [stderr]    Compiling midly v0.5.3
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.59
[INFO] [stderr]    Compiling serde_derive v1.0.200
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.92
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.92
[INFO] [stderr]    Compiling pest v2.7.10
[INFO] [stderr]    Compiling js-sys v0.3.69
[INFO] [stderr]    Compiling pest_meta v2.7.10
[INFO] [stderr]    Compiling pest_generator v2.7.10
[INFO] [stderr]    Compiling pest_derive v2.7.10
[INFO] [stderr]    Compiling web-sys v0.3.69
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling docopt v1.1.1
[INFO] [stderr]    Compiling handlebars v5.1.2
[INFO] [stderr]    Compiling shapemaker v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/lib.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn main() {}
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fade_out_kick_circles` is never used
[INFO] [stdout]    --> src/main.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_stem_position` is never used
[INFO] [stdout]    --> src/main.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn update_stem_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_kick_happened` is never read
[INFO] [stdout]    --> src/main.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 204 |     first_kick_happened: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_cycle` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle_with_offset` is never used
[INFO] [stdout]    --> src/main.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hat_region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.93s
[INFO] running `Command { std: "docker" "inspect" "75ed2ffcba3d8e0e8343960ea23c6e589c8ac7b461790798a658f34c46b9fad2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "75ed2ffcba3d8e0e8343960ea23c6e589c8ac7b461790798a658f34c46b9fad2", kill_on_drop: false }`
[INFO] [stdout] 75ed2ffcba3d8e0e8343960ea23c6e589c8ac7b461790798a658f34c46b9fad2
[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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 525e11015c4ba3c34eab2a6c6d521d779644c70d92c76320a92dc45e050994e1
[INFO] running `Command { std: "docker" "start" "-a" "525e11015c4ba3c34eab2a6c6d521d779644c70d92c76320a92dc45e050994e1", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-analyzer v0.0.1
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/lib.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn main() {}
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shapemaker v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `fade_out_kick_circles` is never used
[INFO] [stdout]    --> src/main.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_stem_position` is never used
[INFO] [stdout]    --> src/main.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn update_stem_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_kick_happened` is never read
[INFO] [stdout]    --> src/main.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 204 |     first_kick_happened: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_cycle` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle_with_offset` is never used
[INFO] [stdout]    --> src/main.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hat_region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_cycle` is never used
[INFO] [stdout]    --> src/main.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stdout]    --> src/midi.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stdout]  --> src/animation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> src/web.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stdout]   --> src/lib.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stdout]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spacing`
[INFO] [stdout]   --> src/fill.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stdout]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]   --> src/web.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/web.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spinner` is never read
[INFO] [stdout]    --> src/lib.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SpinState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 189 |     pub spinner: ProgressBar,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATTERN_SIZE` is never used
[INFO] [stdout]   --> src/fill.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kick_channel` is never used
[INFO] [stdout]   --> src/midi.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         std::fs::create_dir_all(&to);
[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] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fs::write(output_file, contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/preview.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout] 83 | |             tiny_http::Header {
[INFO] [stdout] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stdout] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stdout] 86 | |             },
[INFO] [stdout] 87 | |         ));
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 | /             std::fs::write(
[INFO] [stdout] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stdout] 643 | |                 &frame,
[INFO] [stdout] 644 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 641 |             let _ = std::fs::write(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/video.rs:660:29
[INFO] [stdout]     |
[INFO] [stdout] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stdout] 661 | | ...                       frame_svg.clone(),
[INFO] [stdout] 662 | | ...                       *frame_no,
[INFO] [stdout] 663 | | ...                       total_frames,
[INFO] [stdout] ...   |
[INFO] [stdout] 666 | | ...                       resolution,
[INFO] [stdout] 667 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.38s
[INFO] running `Command { std: "docker" "inspect" "525e11015c4ba3c34eab2a6c6d521d779644c70d92c76320a92dc45e050994e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "525e11015c4ba3c34eab2a6c6d521d779644c70d92c76320a92dc45e050994e1", kill_on_drop: false }`
[INFO] [stdout] 525e11015c4ba3c34eab2a6c6d521d779644c70d92c76320a92dc45e050994e1
[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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9245fcacaab598af4094ecb6277d0ed8bdf08894fe3a8aa0d6911fe6bc8349cd
[INFO] running `Command { std: "docker" "start" "-a" "9245fcacaab598af4094ecb6277d0ed8bdf08894fe3a8aa0d6911fe6bc8349cd", kill_on_drop: false }`
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stderr]     |             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Context`, `LaterHookCondition`, `RenderFunction`
[INFO] [stderr]  --> src/animation.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{Canvas, Context, LaterHookCondition, RenderFunction};
[INFO] [stderr]   |                     ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `console_log`
[INFO] [stderr]   --> src/web.rs:36:14
[INFO] [stderr]    |
[INFO] [stderr] 36 | macro_rules! console_log {
[INFO] [stderr]    |              ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Add`, `Div`, `Range`, `Sub`
[INFO] [stderr]   --> src/lib.rs:36:16
[INFO] [stderr]    |
[INFO] [stderr] 36 | use std::ops::{Add, Div, Range, Sub};
[INFO] [stderr]    |                ^^^  ^^^  ^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `spacing`
[INFO] [stderr]   --> src/fill.rs:75:51
[INFO] [stderr]    |
[INFO] [stderr] 75 |         if let Fill::Hatched(color, _, thickness, spacing) = self {
[INFO] [stderr]    |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spacing`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opacity`
[INFO] [stderr]   --> src/web.rs:42:21
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stderr]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `color`
[INFO] [stderr]   --> src/web.rs:42:35
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn render_image(opacity: f32, color: Color) -> Result<(), JsValue> {
[INFO] [stderr]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stderr] 
[INFO] [stderr] warning: field `spinner` is never read
[INFO] [stderr]    --> src/lib.rs:189:9
[INFO] [stderr]     |
[INFO] [stderr] 188 | struct SpinState {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] 189 |     pub spinner: ProgressBar,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `main` is never used
[INFO] [stderr]    --> src/lib.rs:225:4
[INFO] [stderr]     |
[INFO] [stderr] 225 | fn main() {}
[INFO] [stderr]     |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PATTERN_SIZE` is never used
[INFO] [stderr]   --> src/fill.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const PATTERN_SIZE: usize = 8;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_kick_channel` is never used
[INFO] [stderr]   --> src/midi.rs:21:4
[INFO] [stderr]    |
[INFO] [stderr] 21 | fn is_kick_channel(name: &str) -> bool {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/lib.rs:94:9
[INFO] [stderr]    |
[INFO] [stderr] 94 |         std::fs::create_dir_all(&to);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 94 |         let _ = std::fs::create_dir_all(&to);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/lib.rs:96:13
[INFO] [stderr]    |
[INFO] [stderr] 96 |             fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 96 |             let _ = fs::write(to.join(name), format!("{:?}", stem));
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/preview.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     fs::write(output_file, contents);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let _ = fs::write(output_file, contents);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/preview.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 82 | /         request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stderr] 83 | |             tiny_http::Header {
[INFO] [stderr] 84 | |                 field: "Access-Control-Allow-Origin".parse().unwrap(),
[INFO] [stderr] 85 | |                 value: "*".parse().unwrap(),
[INFO] [stderr] 86 | |             },
[INFO] [stderr] 87 | |         ));
[INFO] [stderr]    | |__________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 82 |         let _ = request.respond(tiny_http::Response::from_string(contents).with_header(
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:329:17
[INFO] [stderr]     |
[INFO] [stderr] 329 |                 canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 329 |                 let _ = canvas.add_object(layer_name, object_name, object, fill);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:617:9
[INFO] [stderr]     |
[INFO] [stderr] 617 |         remove_dir_all(self.frames_output_directory);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 617 |         let _ = remove_dir_all(self.frames_output_directory);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:641:13
[INFO] [stderr]     |
[INFO] [stderr] 641 | /             std::fs::write(
[INFO] [stderr] 642 | |                 format!("{}/{}.svg", self.frames_output_directory, no),
[INFO] [stderr] 643 | |                 &frame,
[INFO] [stderr] 644 | |             );
[INFO] [stderr]     | |_____________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 641 |             let _ = std::fs::write(
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/video.rs:660:29
[INFO] [stderr]     |
[INFO] [stderr] 660 | / ...                   Video::<AdditionalContext>::build_frame(
[INFO] [stderr] 661 | | ...                       frame_svg.clone(),
[INFO] [stderr] 662 | | ...                       *frame_no,
[INFO] [stderr] 663 | | ...                       total_frames,
[INFO] [stderr] ...   |
[INFO] [stderr] 666 | | ...                       resolution,
[INFO] [stderr] 667 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 660 |                             let _ = Video::<AdditionalContext>::build_frame(
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `shapemaker` (lib) generated 20 warnings (run `cargo fix --lib -p shapemaker` to apply 2 suggestions)
[INFO] [stderr] warning: `shapemaker` (lib test) generated 19 warnings (19 duplicates)
[INFO] [stderr] warning: function `fade_out_kick_circles` is never used
[INFO] [stderr]    --> src/main.rs:176:4
[INFO] [stderr]     |
[INFO] [stderr] 176 | fn fade_out_kick_circles(canvas: &mut Canvas, _: usize) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_stem_position` is never used
[INFO] [stderr]    --> src/main.rs:184:4
[INFO] [stderr]     |
[INFO] [stderr] 184 | fn update_stem_position(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `first_kick_happened` is never read
[INFO] [stderr]    --> src/main.rs:204:5
[INFO] [stderr]     |
[INFO] [stderr] 203 | struct State {
[INFO] [stderr]     |        ----- field in this struct
[INFO] [stderr] 204 |     first_kick_happened: bool,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `color_cycle` is never used
[INFO] [stderr]    --> src/main.rs:208:4
[INFO] [stderr]     |
[INFO] [stderr] 208 | fn color_cycle(current_color: Color) -> Color {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `region_cycle_with_offset` is never used
[INFO] [stderr]    --> src/main.rs:223:4
[INFO] [stderr]     |
[INFO] [stderr] 223 | fn region_cycle_with_offset(world: &Region, current: Option<&Region>, offset: usize) -> Region {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hat_region_cycle` is never used
[INFO] [stderr]    --> src/main.rs:235:4
[INFO] [stderr]     |
[INFO] [stderr] 235 | fn hat_region_cycle(world: &Region, current: &Region) -> (i32, i32) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `region_cycle` is never used
[INFO] [stderr]    --> src/main.rs:254:4
[INFO] [stderr]     |
[INFO] [stderr] 254 | fn region_cycle(world: &Region, current: Option<&Region>) -> Region {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `shapemaker` (bin "shapemaker" test) generated 7 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shapemaker-4eeef19ac92ffce8)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test region::test_sub_and_transate_coherence ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shapemaker-28684c1822709540)
[INFO] [stdout] 
[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] [stderr]    Doc-tests shapemaker
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn tempo_to_bpm(µs_per_beat: f32) -> usize {
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr]     = note: `#[warn(uncommon_codepoints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: identifier contains a non normalized (NFKC) character: 'µ'
[INFO] [stderr]    --> src/midi.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let delta_µs = now.tempo * delta as f32 / now.ticks_per_beat as f32;
[INFO] [stderr]     |             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this character is included in the Not_NFKC Unicode general security profile
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/animation.rs - animation::Animation::new (line 21) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/animation.rs - animation::Animation::new (line 21) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Animation`
[INFO] [stdout]  --> src/animation.rs:22:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | Animation::new("example", &|t, canvas, _| {
[INFO] [stdout]   | ^^^^^^^^^ use of undeclared type `Animation`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Animation;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Fill`
[INFO] [stdout]  --> src/animation.rs:23:38
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas.root().object("dot").fill(Fill::Translucent(Color::Red, t))
[INFO] [stdout]   |                                      ^^^^ use of undeclared type `Fill`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rand::Fill;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Fill;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/animation.rs:23:56
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas.root().object("dot").fill(Fill::Translucent(Color::Red, t))
[INFO] [stdout]   |                                                        ^^^^^ use of undeclared type `Color`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 2 + use shapemaker::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/animation.rs - animation::Animation::new (line 21)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "9245fcacaab598af4094ecb6277d0ed8bdf08894fe3a8aa0d6911fe6bc8349cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9245fcacaab598af4094ecb6277d0ed8bdf08894fe3a8aa0d6911fe6bc8349cd", kill_on_drop: false }`
[INFO] [stdout] 9245fcacaab598af4094ecb6277d0ed8bdf08894fe3a8aa0d6911fe6bc8349cd
