[INFO] cloning repository https://github.com/cwahlfeldt/rhythmix [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cwahlfeldt/rhythmix" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcwahlfeldt%2Frhythmix", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcwahlfeldt%2Frhythmix'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8a929cebb5f47dfd070e5a6a598233c5258e9e02 [INFO] testing cwahlfeldt/rhythmix against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcwahlfeldt%2Frhythmix" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cwahlfeldt/rhythmix [INFO] finished tweaking git repo https://github.com/cwahlfeldt/rhythmix [INFO] tweaked toml for git repo https://github.com/cwahlfeldt/rhythmix written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cwahlfeldt/rhythmix on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/cwahlfeldt/rhythmix 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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded hound v3.5.1 [INFO] [stderr] Downloaded glob v0.3.2 [INFO] [stderr] Downloaded is-terminal v0.4.13 [INFO] [stderr] Downloaded coreaudio-sys v0.2.16 [INFO] [stderr] Downloaded plotters-svg v0.3.7 [INFO] [stderr] Downloaded symphonia-bundle-mp3 v0.5.4 [INFO] [stderr] Downloaded plotters-backend v0.3.7 [INFO] [stderr] Downloaded crossbeam v0.8.4 [INFO] [stderr] Downloaded tokio-util v0.7.13 [INFO] [stderr] Downloaded clap v4.5.27 [INFO] [stderr] Downloaded alsa v0.9.1 [INFO] [stderr] Downloaded id3 v1.16.1 [INFO] [stderr] Downloaded claxon v0.4.3 [INFO] [stderr] Downloaded crossbeam-channel v0.5.14 [INFO] [stderr] Downloaded flate2 v1.0.35 [INFO] [stderr] Downloaded plotters v0.3.7 [INFO] [stderr] Downloaded clap_builder v4.5.27 [INFO] [stderr] Downloaded bindgen v0.70.1 [INFO] [stderr] Downloaded winnow v0.6.24 [INFO] [stderr] Downloaded rustfft v6.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 87bf790c05c3729a61653e8b6fc3d3204e056247d6b4e4d5cdfb2c68b1f78f0c [INFO] running `Command { std: "docker" "start" "-a" "87bf790c05c3729a61653e8b6fc3d3204e056247d6b4e4d5cdfb2c68b1f78f0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "87bf790c05c3729a61653e8b6fc3d3204e056247d6b4e4d5cdfb2c68b1f78f0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87bf790c05c3729a61653e8b6fc3d3204e056247d6b4e4d5cdfb2c68b1f78f0c", kill_on_drop: false }` [INFO] [stdout] 87bf790c05c3729a61653e8b6fc3d3204e056247d6b4e4d5cdfb2c68b1f78f0c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 46dcf16632b2530648ee3a6beaaf377d128c6b357af135cc344df9cda2b9e262 [INFO] running `Command { std: "docker" "start" "-a" "46dcf16632b2530648ee3a6beaaf377d128c6b357af135cc344df9cda2b9e262", kill_on_drop: false }` [INFO] [stderr] Compiling log v0.4.25 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling bytemuck v1.21.0 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling bitflags v2.8.0 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling hashbrown v0.15.2 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling rustfft v6.2.0 [INFO] [stderr] Compiling miniz_oxide v0.8.3 [INFO] [stderr] Compiling symphonia-core v0.5.4 [INFO] [stderr] Compiling tinyvec v1.8.1 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling ogg v0.8.0 [INFO] [stderr] Compiling tokio v1.43.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling alsa v0.9.1 [INFO] [stderr] Compiling serde_json v1.0.137 [INFO] [stderr] Compiling strength_reduce v0.2.4 [INFO] [stderr] Compiling indexmap v2.7.1 [INFO] [stderr] Compiling dasp_sample v0.11.0 [INFO] [stderr] Compiling flate2 v1.0.35 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling lewton v0.10.2 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling is-terminal v0.4.13 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crossbeam-channel v0.5.14 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling symphonia-metadata v0.5.4 [INFO] [stderr] Compiling claxon v0.4.3 [INFO] [stderr] Compiling transpose v0.2.3 [INFO] [stderr] Compiling primal-check v0.3.4 [INFO] [stderr] Compiling hound v3.5.1 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling id3 v1.16.1 [INFO] [stderr] Compiling symphonia-bundle-mp3 v0.5.4 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling symphonia v0.5.4 [INFO] [stderr] Compiling rodio v0.17.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling tokio-util v0.7.13 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling rhythmix v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `CombinedAnalyzer`, `CombinedConfig`, and `CombinedResults` [INFO] [stdout] --> src/audio/analysis/mod.rs:9:20 [INFO] [stdout] | [INFO] [stdout] 9 | pub use combined::{CombinedAnalyzer, CombinedConfig, CombinedResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TempoAnalyzer` and `TempoConfig` [INFO] [stdout] --> src/audio/analysis/mod.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | pub use tempo::{TempoAnalyzer, TempoConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `analysis::AudioFeatures` [INFO] [stdout] --> src/audio/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use analysis::AudioFeatures; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::common::Result` [INFO] [stdout] --> src/pattern/timing.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::common::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::timing::BeatGrid` [INFO] [stdout] --> src/pattern/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::timing::BeatGrid; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `base64::Engine` [INFO] [stdout] --> src/server/handlers.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use base64::Engine; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_consistent_double` [INFO] [stdout] --> src/audio/analysis/tempo.rs:326:25 [INFO] [stdout] | [INFO] [stdout] 326 | let has_consistent_double = !ioi_ratios.is_empty() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_consistent_double` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_consistent_half` [INFO] [stdout] --> src/audio/analysis/tempo.rs:328:25 [INFO] [stdout] | [INFO] [stdout] 328 | let has_consistent_half = !ioi_ratios.is_empty() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_consistent_half` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result_clusters` is never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:470:17 [INFO] [stdout] | [INFO] [stdout] 470 | let mut result_clusters = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CombFilterConfig` is never constructed [INFO] [stdout] --> src/audio/analysis/comb_filter.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CombFilterConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CombFilterAnalyzer` is never constructed [INFO] [stdout] --> src/audio/analysis/comb_filter.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct CombFilterAnalyzer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `analyze`, `compute_fft`, `compute_correlation`, and `correlation_to_confidence` are never used [INFO] [stdout] --> src/audio/analysis/comb_filter.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl CombFilterAnalyzer { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 37 | pub fn new(config: CombFilterConfig, sample_rate: u32) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn analyze(&self, samples: &[f32]) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | fn compute_fft(&self, signal: &[f32]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn compute_correlation(&self, signal_fft: &[Complex], comb_fft: &[Complex]) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn correlation_to_confidence(&self, correlation: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CombinedConfig` is never constructed [INFO] [stdout] --> src/audio/analysis/combined.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct CombinedConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CombinedResults` is never constructed [INFO] [stdout] --> src/audio/analysis/combined.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct CombinedResults { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CombinedAnalyzer` is never constructed [INFO] [stdout] --> src/audio/analysis/combined.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct CombinedAnalyzer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/audio/analysis/combined.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl CombinedAnalyzer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 55 | pub fn new(config: CombinedConfig, sample_rate: u32) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn window_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn process(&mut self, samples: &[f32], time: f64) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn predict_next_beat(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn is_within_beat_window(&self, time: f64, window_size: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn adapt_weights(&mut self, features: &AudioFeatures) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | fn get_beat_consistency(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `for_dnb` and `with_metronome_precision` are never used [INFO] [stdout] --> src/audio/analysis/onset.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl OnsetConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 36 | pub fn for_dnb() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn with_metronome_precision(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `min_bpm`, `max_bpm`, `tempo_window`, and `confidence_threshold` are never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TempoConfig { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 7 | /// Minimum BPM to detect [INFO] [stdout] 8 | pub min_bpm: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | /// Maximum BPM to detect [INFO] [stdout] 10 | pub max_bpm: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | /// Window size for tempo estimation (in seconds) [INFO] [stdout] 12 | pub tempo_window: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | /// Minimum confidence level for tempo detection [INFO] [stdout] 14 | pub confidence_threshold: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TempoConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `for_genre`, `is_probable_double_tempo`, and `is_in_range` are never used [INFO] [stdout] --> src/audio/analysis/tempo.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl TempoConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 29 | pub fn for_genre(genre: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn is_probable_double_tempo(&self, bpm: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn is_in_range(&self, bpm: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `beats_per_measure`, `beat_unit`, and `confidence` are never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct TimeSignature { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 73 | /// Number of beats per measure [INFO] [stdout] 74 | pub beats_per_measure: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 75 | /// Note value that represents one beat (4 = quarter, 8 = eighth, etc.) [INFO] [stdout] 76 | pub beat_unit: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 77 | /// Confidence in the time signature detection (0.0 - 1.0) [INFO] [stdout] 78 | pub confidence: f64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TimeSignature` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bpm`, `confidence`, `phase`, and `time_signature` are never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct TempoResults { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 93 | /// Detected tempo in BPM [INFO] [stdout] 94 | pub bpm: f64, [INFO] [stdout] | ^^^ [INFO] [stdout] 95 | /// Confidence level of the detection (0.0 - 1.0) [INFO] [stdout] 96 | pub confidence: f64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub phase: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 100 | /// Detected time signature [INFO] [stdout] 101 | pub time_signature: TimeSignature, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TempoResults` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BpmCluster` is never constructed [INFO] [stdout] --> src/audio/analysis/tempo.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | struct BpmCluster { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/audio/analysis/tempo.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 112 | impl BpmCluster { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 113 | fn new(initial_bpm: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | fn is_probable_double_tempo(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn is_probable_half_tempo(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | fn is_in_dnb_range(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | fn add_value(&mut self, value: f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn merge(&mut self, other: &BpmCluster) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | fn recalculate_stats(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config`, `inter_onset_intervals`, `beat_strengths`, `measure_positions`, and `last_tempo` are never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct TempoAnalyzer { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 168 | config: TempoConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 169 | inter_onset_intervals: VecDeque, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 170 | current_time: f64, [INFO] [stdout] 171 | beat_strengths: VecDeque, // Store beat strengths for time signature detection [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 172 | measure_positions: VecDeque, // Store beat positions within measures [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | last_tempo: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `detect_time_signature`, `process_onset`, `get_last_tempo`, `estimate_tempo`, and `find_bpm_clusters` are never used [INFO] [stdout] --> src/audio/analysis/tempo.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 178 | impl TempoAnalyzer { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 179 | /// Creates a new TempoAnalyzer with the specified configuration [INFO] [stdout] 180 | pub fn new(config: TempoConfig, sample_rate: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn detect_time_signature(&self) -> TimeSignature { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn process_onset( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | pub fn get_last_tempo(&self) -> Option<(f64, f64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | fn estimate_tempo(&self) -> TempoResults { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | fn find_bpm_clusters(&self, bpms: &[f64]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `autocorrelate` is never used [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl PeakTempoAnalyzer { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | fn autocorrelate(signal: &[f32], max_lag: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time_signature`, `onset_strengths`, `onset_features`, and `avg_features` are never read [INFO] [stdout] --> src/audio/analyzer.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct AnalysisResults { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub time_signature: TimeSignature, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub onset_strengths: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 41 | /// Audio features at onset points [INFO] [stdout] 42 | pub onset_features: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 43 | /// Average features across the whole file [INFO] [stdout] 44 | pub avg_features: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AnalysisResults` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `last_lane`, `consecutive_notes`, and `time_signature` are never read [INFO] [stdout] --> src/pattern/generator.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct PatternGenerator { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | last_lane: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 26 | consecutive_notes: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | time_signature: TimeSignature, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_grid_division` is never used [INFO] [stdout] --> src/pattern/generator.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl PatternGenerator { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_grid_division(&self) -> GridDivision { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SectionConfig` is never constructed [INFO] [stdout] --> src/pattern/section.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SectionConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SectionManager` is never constructed [INFO] [stdout] --> src/pattern/section.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct SectionManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/pattern/section.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl SectionManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 50 | /// Creates a new SectionManager [INFO] [stdout] 51 | pub fn new(config: SectionConfig, total_duration: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn process_features(&mut self, features: &AudioFeatures, time: f64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn update_sections(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn get_base_intensity(&self, section_type: &SectionType) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn generate_sections(&mut self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn generate_sections_from_detected(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn generate_default_sections(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn determine_next_section(&self, current_sections: &[PatternSection]) -> SectionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | fn refine_section_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | fn calculate_section_duration(&self, section_type: &SectionType) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn calculate_audio_based_intensity(&self, boundary: &SectionBoundary) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SectionDetectionConfig` is never constructed [INFO] [stdout] --> src/pattern/section_detection.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct SectionDetectionConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SectionBoundary` is never constructed [INFO] [stdout] --> src/pattern/section_detection.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct SectionBoundary { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MovingAverage` is never constructed [INFO] [stdout] --> src/pattern/section_detection.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | struct MovingAverage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, and `mean` are never used [INFO] [stdout] --> src/pattern/section_detection.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 51 | impl MovingAverage { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 52 | fn new(window_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn add(&mut self, value: f32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn mean(&self) -> f32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioSectionDetector` is never constructed [INFO] [stdout] --> src/pattern/section_detection.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct AudioSectionDetector { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/pattern/section_detection.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl AudioSectionDetector { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 95 | /// Creates a new AudioSectionDetector with the specified configuration [INFO] [stdout] 96 | pub fn new(config: SectionDetectionConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn process_features(&mut self, features: &AudioFeatures, time: f64) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn calculate_novelty_score(&self, features: &AudioFeatures) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | fn calculate_energy_change(&self, features: &AudioFeatures) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | fn calculate_spectral_contrast(&self, features: &AudioFeatures) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | fn is_section_boundary(&self, novelty: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | fn classify_section_boundary(&self, features: &AudioFeatures) -> SectionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn calculate_boundary_confidence(&self, novelty: f64, features: &AudioFeatures) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BEATS_PER_MEASURE` is never used [INFO] [stdout] --> src/pattern/timing.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const BEATS_PER_MEASURE: usize = 4; // 4/4 time signature [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SUBDIVISION_TOLERANCE` is never used [INFO] [stdout] --> src/pattern/timing.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const SUBDIVISION_TOLERANCE: f64 = 0.000001; // 1ms snap tolerance for metronome-like precision [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `bpm` is never read [INFO] [stdout] --> src/pattern/timing.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct BeatGrid { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 26 | bpm: f64, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/pattern/timing.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl BeatGrid { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn get_grid_division(&self) -> GridDivision { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_on_grid(&self, time: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn get_grid_positions(&self, start_time: f64, end_time: f64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_beat_in_measure(&self, time: f64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn get_subdivision_in_beat(&self, time: f64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn beats_to_seconds(&self, beats: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn seconds_to_beats(&self, seconds: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_seconds_per_beat(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn calculate_bpm_from_intervals(intervals: &[f64]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PatternRequest` is never constructed [INFO] [stdout] --> src/server/handlers.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct PatternRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BeatMarker` is never constructed [INFO] [stdout] --> src/common/types.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct BeatMarker { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.93s [INFO] running `Command { std: "docker" "inspect" "46dcf16632b2530648ee3a6beaaf377d128c6b357af135cc344df9cda2b9e262", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "46dcf16632b2530648ee3a6beaaf377d128c6b357af135cc344df9cda2b9e262", kill_on_drop: false }` [INFO] [stdout] 46dcf16632b2530648ee3a6beaaf377d128c6b357af135cc344df9cda2b9e262 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fa2790d46e7ac19fb781155644303d38ea50000bc66cf1da96456dd9e2a6dc30 [INFO] running `Command { std: "docker" "start" "-a" "fa2790d46e7ac19fb781155644303d38ea50000bc66cf1da96456dd9e2a6dc30", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling half v2.4.1 [INFO] [stderr] Compiling clap_lex v0.7.4 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling oorandom v11.1.4 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling clap_builder v4.5.27 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-channel v0.5.14 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling clap v4.5.27 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling serde_derive v1.0.217 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling tokio v1.43.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.137 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling tokio-util v0.7.13 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling tokio-test v0.4.4 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling rhythmix v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0432]: unresolved import `assert_approx_eq` [INFO] [stdout] --> src/pattern/generator.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | use assert_approx_eq::assert_approx_eq; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `assert_approx_eq` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `assert_approx_eq`, use `cargo add assert_approx_eq` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CombinedAnalyzer`, `CombinedConfig`, and `CombinedResults` [INFO] [stdout] --> src/audio/analysis/mod.rs:9:20 [INFO] [stdout] | [INFO] [stdout] 9 | pub use combined::{CombinedAnalyzer, CombinedConfig, CombinedResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TempoAnalyzer` and `TempoConfig` [INFO] [stdout] --> src/audio/analysis/mod.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | pub use tempo::{TempoAnalyzer, TempoConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `analysis::AudioFeatures` [INFO] [stdout] --> src/audio/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use analysis::AudioFeatures; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::common::Result` [INFO] [stdout] --> src/pattern/timing.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::common::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::timing::BeatGrid` [INFO] [stdout] --> src/pattern/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::timing::BeatGrid; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `base64::Engine` [INFO] [stdout] --> src/server/handlers.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use base64::Engine; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:258:43 [INFO] [stdout] | [INFO] [stdout] 258 | let kick = (2.0 * PI * 50.0 * time).sin() * [INFO] [stdout] | ^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:258:41 [INFO] [stdout] | [INFO] [stdout] 258 | let kick = (2.0 * PI * 50.0 * time).sin() * [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:259:35 [INFO] [stdout] | [INFO] [stdout] 259 | (2.0 * PI * beats_per_second * time).sin().max(0.0).powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:259:33 [INFO] [stdout] | [INFO] [stdout] 259 | (2.0 * PI * beats_per_second * time).sin().max(0.0).powi(2); [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:259:54 [INFO] [stdout] | [INFO] [stdout] 259 | (2.0 * PI * beats_per_second * time).sin().max(0.0).powi(2); [INFO] [stdout] | ^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:259:52 [INFO] [stdout] | [INFO] [stdout] 259 | (2.0 * PI * beats_per_second * time).sin().max(0.0).powi(2); [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:261:45 [INFO] [stdout] | [INFO] [stdout] 261 | let snare = (2.0 * PI * 200.0 * time).sin() * [INFO] [stdout] | ^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:261:43 [INFO] [stdout] | [INFO] [stdout] 261 | let snare = (2.0 * PI * 200.0 * time).sin() * [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:262:36 [INFO] [stdout] | [INFO] [stdout] 262 | (2.0 * PI * beats_per_second * time + PI).sin().max(0.0).powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:262:34 [INFO] [stdout] | [INFO] [stdout] 262 | (2.0 * PI * beats_per_second * time + PI).sin().max(0.0).powi(2); [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:262:55 [INFO] [stdout] | [INFO] [stdout] 262 | (2.0 * PI * beats_per_second * time + PI).sin().max(0.0).powi(2); [INFO] [stdout] | ^^^^ expected `f32`, found `f64` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `f32` by `f64` [INFO] [stdout] --> src/audio/analysis/peak_tempo.rs:262:53 [INFO] [stdout] | [INFO] [stdout] 262 | (2.0 * PI * beats_per_second * time + PI).sin().max(0.0).powi(2); [INFO] [stdout] | ^ no implementation for `f32 * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Mul` is not implemented for `f32` [INFO] [stdout] = help: the following other types implement trait `Mul`: [INFO] [stdout] `&f32` implements `Mul<&Complex>` [INFO] [stdout] `&f32` implements `Mul>` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `&f32` implements `Mul` [INFO] [stdout] `f32` implements `Mul<&Complex>` [INFO] [stdout] `f32` implements `Mul<&f32>` [INFO] [stdout] `f32` implements `Mul>` [INFO] [stdout] `f32` implements `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_consistent_double` [INFO] [stdout] --> src/audio/analysis/tempo.rs:326:25 [INFO] [stdout] | [INFO] [stdout] 326 | let has_consistent_double = !ioi_ratios.is_empty() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_consistent_double` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_consistent_half` [INFO] [stdout] --> src/audio/analysis/tempo.rs:328:25 [INFO] [stdout] | [INFO] [stdout] 328 | let has_consistent_half = !ioi_ratios.is_empty() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_consistent_half` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result_clusters` is never read [INFO] [stdout] --> src/audio/analysis/tempo.rs:470:17 [INFO] [stdout] | [INFO] [stdout] 470 | let mut result_clusters = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0432. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rhythmix` (bin "rhythmix" test) due to 13 previous errors; 9 warnings emitted [INFO] running `Command { std: "docker" "inspect" "fa2790d46e7ac19fb781155644303d38ea50000bc66cf1da96456dd9e2a6dc30", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa2790d46e7ac19fb781155644303d38ea50000bc66cf1da96456dd9e2a6dc30", kill_on_drop: false }` [INFO] [stdout] fa2790d46e7ac19fb781155644303d38ea50000bc66cf1da96456dd9e2a6dc30