[INFO] cloning repository https://github.com/Jack-Papel/music
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jack-Papel/music" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJack-Papel%2Fmusic", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJack-Papel%2Fmusic'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e6d52726bcf3064ff391522a7909383713c68cae
[INFO] testing Jack-Papel/music against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJack-Papel%2Fmusic" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Jack-Papel/music
[INFO] finished tweaking git repo https://github.com/Jack-Papel/music
[INFO] tweaked toml for git repo https://github.com/Jack-Papel/music written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jack-Papel/music on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Jack-Papel/music 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.2.27
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.17
[INFO] [stderr]   Downloaded rodio v0.20.1
[INFO] [stderr]   Downloaded winnow v0.7.11
[INFO] [stderr]   Downloaded bindgen v0.72.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d57d84ea5b3258a6b02ca1c25b2a95fe446699f2d15d3b8cb40951e3567b78b9
[INFO] running `Command { std: "docker" "start" "-a" "d57d84ea5b3258a6b02ca1c25b2a95fe446699f2d15d3b8cb40951e3567b78b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d57d84ea5b3258a6b02ca1c25b2a95fe446699f2d15d3b8cb40951e3567b78b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d57d84ea5b3258a6b02ca1c25b2a95fe446699f2d15d3b8cb40951e3567b78b9", kill_on_drop: false }`
[INFO] [stdout] d57d84ea5b3258a6b02ca1c25b2a95fe446699f2d15d3b8cb40951e3567b78b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7a805f169417eccbcdab450a4970e9c7f050bdd48236030e9161334ac7bdb323
[INFO] running `Command { std: "docker" "start" "-a" "7a805f169417eccbcdab450a4970e9c7f050bdd48236030e9161334ac7bdb323", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling hound v3.5.1
[INFO] [stderr]    Compiling claxon v0.4.3
[INFO] [stderr]    Compiling ogg v0.8.0
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling symphonia-core v0.5.4
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling symphonia-metadata v0.5.4
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]    Compiling symphonia v0.5.4
[INFO] [stderr]    Compiling rodio v0.20.1
[INFO] [stderr]    Compiling symphoxy v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/note/chord.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scales::interval::ChordShape`
[INFO] [stdout]  --> src/note/chord.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::scales::interval::ChordShape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `C4`, `NoteKind`, `Note`, and `Tet12`
[INFO] [stdout]  --> src/note/chord.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Line, Note, NoteKind, NotePitch, Piece, Scale, Tet12, C4};
[INFO] [stdout]   |                   ^^^^  ^^^^^^^^                           ^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Product`
[INFO] [stdout]  --> src/piece/line.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::{Product, Sum},
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tet12::A4`
[INFO] [stdout]  --> src/scales/mod.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 |     scales::{interval::Interval, tet12::A4},
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/piece/mod.rs:410:1
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub trait Reversable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     missing_docs,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/piece/mod.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     fn reverse(self) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/scales/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod interval;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn intervals() -> &'static [Interval];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn get_chord(&self, degrees: &[isize]) -> crate::note::chord::Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/scales/interval.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Interval(pub f32);
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]  --> src/scales/interval.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub const UNISON: Interval = Interval(0.0);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const MINOR_SECOND: Interval = Interval(1.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const AUGMENTED_UNISON: Interval = Self::MINOR_SECOND;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const MAJOR_SECOND: Interval = Interval(2.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const MINOR_THIRD: Interval = Interval(3.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const AUGMENTED_SECOND: Interval = Self::MINOR_THIRD;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const MAJOR_THIRD: Interval = Interval(4.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const PERFECT_FOURTH: Interval = Interval(5.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const AUGMENTED_THIRD: Interval = Self::PERFECT_FOURTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const TRITONE: Interval = Interval(6.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const AUGMENTED_FOURTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const DIMINISHED_FIFTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const PERFECT_FIFTH: Interval = Interval(7.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const MINOR_SIXTH: Interval = Interval(8.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const AUGMENTED_FIFTH: Interval = Self::MINOR_SIXTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const MAJOR_SIXTH: Interval = Interval(9.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub const MINOR_SEVENTH: Interval = Interval(10.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const AUGMENTED_SIXTH: Interval = Self::MINOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const MAJOR_SEVENTH: Interval = Interval(11.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const DIMINISHED_OCTAVE: Interval = Self::MAJOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const OCTAVE: Interval = Interval(12.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/scales/interval.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ChordShape(pub Vec<Interval>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/interval.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn transpose_to(&self, root: NotePitch) -> Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_intervals(intervals: impl IntoIterator<Item = Interval>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     pub fn from_stacked_intervals(
[INFO] [stdout] 64 | |         intervals: impl IntoIterator<Item = Interval, IntoIter = impl ExactSizeIterator<Item = Interval>>,
[INFO] [stdout] 65 | |     ) -> Self {
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.12s
[INFO] running `Command { std: "docker" "inspect" "7a805f169417eccbcdab450a4970e9c7f050bdd48236030e9161334ac7bdb323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7a805f169417eccbcdab450a4970e9c7f050bdd48236030e9161334ac7bdb323", kill_on_drop: false }`
[INFO] [stdout] 7a805f169417eccbcdab450a4970e9c7f050bdd48236030e9161334ac7bdb323
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f55a44368e90057628ec5a9eb9994dfada2a65fadf37ec8fc5471c5170cf193f
[INFO] running `Command { std: "docker" "start" "-a" "f55a44368e90057628ec5a9eb9994dfada2a65fadf37ec8fc5471c5170cf193f", kill_on_drop: false }`
[INFO] [stderr]    Compiling symphoxy v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/note/chord.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scales::interval::ChordShape`
[INFO] [stdout]  --> src/note/chord.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::scales::interval::ChordShape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `C4`, `NoteKind`, `Note`, and `Tet12`
[INFO] [stdout]  --> src/note/chord.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Line, Note, NoteKind, NotePitch, Piece, Scale, Tet12, C4};
[INFO] [stdout]   |                   ^^^^  ^^^^^^^^                           ^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Product`
[INFO] [stdout]  --> src/piece/line.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::{Product, Sum},
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tet12::A4`
[INFO] [stdout]  --> src/scales/mod.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 |     scales::{interval::Interval, tet12::A4},
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/piece/mod.rs:410:1
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub trait Reversable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     missing_docs,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/piece/mod.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     fn reverse(self) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/scales/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod interval;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn intervals() -> &'static [Interval];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn get_chord(&self, degrees: &[isize]) -> crate::note::chord::Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/scales/interval.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Interval(pub f32);
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]  --> src/scales/interval.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub const UNISON: Interval = Interval(0.0);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const MINOR_SECOND: Interval = Interval(1.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const AUGMENTED_UNISON: Interval = Self::MINOR_SECOND;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const MAJOR_SECOND: Interval = Interval(2.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const MINOR_THIRD: Interval = Interval(3.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const AUGMENTED_SECOND: Interval = Self::MINOR_THIRD;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const MAJOR_THIRD: Interval = Interval(4.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const PERFECT_FOURTH: Interval = Interval(5.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const AUGMENTED_THIRD: Interval = Self::PERFECT_FOURTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const TRITONE: Interval = Interval(6.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const AUGMENTED_FOURTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const DIMINISHED_FIFTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const PERFECT_FIFTH: Interval = Interval(7.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const MINOR_SIXTH: Interval = Interval(8.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const AUGMENTED_FIFTH: Interval = Self::MINOR_SIXTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const MAJOR_SIXTH: Interval = Interval(9.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub const MINOR_SEVENTH: Interval = Interval(10.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const AUGMENTED_SIXTH: Interval = Self::MINOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const MAJOR_SEVENTH: Interval = Interval(11.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const DIMINISHED_OCTAVE: Interval = Self::MAJOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const OCTAVE: Interval = Interval(12.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/scales/interval.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ChordShape(pub Vec<Interval>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/interval.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn transpose_to(&self, root: NotePitch) -> Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_intervals(intervals: impl IntoIterator<Item = Interval>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     pub fn from_stacked_intervals(
[INFO] [stdout] 64 | |         intervals: impl IntoIterator<Item = Interval, IntoIter = impl ExactSizeIterator<Item = Interval>>,
[INFO] [stdout] 65 | |     ) -> Self {
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/note/chord.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scales::interval::ChordShape`
[INFO] [stdout]  --> src/note/chord.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::scales::interval::ChordShape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `C4`, `NoteKind`, `Note`, and `Tet12`
[INFO] [stdout]  --> src/note/chord.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Line, Note, NoteKind, NotePitch, Piece, Scale, Tet12, C4};
[INFO] [stdout]   |                   ^^^^  ^^^^^^^^                           ^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Product`
[INFO] [stdout]  --> src/piece/line.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::{Product, Sum},
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tet12::A4`
[INFO] [stdout]  --> src/scales/mod.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 |     scales::{interval::Interval, tet12::A4},
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/piece/mod.rs:410:1
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub trait Reversable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     missing_docs,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/piece/mod.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     fn reverse(self) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/scales/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod interval;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn intervals() -> &'static [Interval];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn get_chord(&self, degrees: &[isize]) -> crate::note::chord::Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/scales/interval.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Interval(pub f32);
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]  --> src/scales/interval.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub const UNISON: Interval = Interval(0.0);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const MINOR_SECOND: Interval = Interval(1.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const AUGMENTED_UNISON: Interval = Self::MINOR_SECOND;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const MAJOR_SECOND: Interval = Interval(2.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const MINOR_THIRD: Interval = Interval(3.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const AUGMENTED_SECOND: Interval = Self::MINOR_THIRD;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const MAJOR_THIRD: Interval = Interval(4.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const PERFECT_FOURTH: Interval = Interval(5.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const AUGMENTED_THIRD: Interval = Self::PERFECT_FOURTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const TRITONE: Interval = Interval(6.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const AUGMENTED_FOURTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const DIMINISHED_FIFTH: Interval = Self::TRITONE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const PERFECT_FIFTH: Interval = Interval(7.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const MINOR_SIXTH: Interval = Interval(8.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const AUGMENTED_FIFTH: Interval = Self::MINOR_SIXTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const MAJOR_SIXTH: Interval = Interval(9.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub const MINOR_SEVENTH: Interval = Interval(10.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const AUGMENTED_SIXTH: Interval = Self::MINOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const MAJOR_SEVENTH: Interval = Interval(11.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const DIMINISHED_OCTAVE: Interval = Self::MAJOR_SEVENTH;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> src/scales/interval.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const OCTAVE: Interval = Interval(12.0);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/scales/interval.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ChordShape(pub Vec<Interval>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/scales/interval.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn transpose_to(&self, root: NotePitch) -> Chord {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_intervals(intervals: impl IntoIterator<Item = Interval>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/scales/interval.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     pub fn from_stacked_intervals(
[INFO] [stdout] 64 | |         intervals: impl IntoIterator<Item = Interval, IntoIter = impl ExactSizeIterator<Item = Interval>>,
[INFO] [stdout] 65 | |     ) -> Self {
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.19s
[INFO] running `Command { std: "docker" "inspect" "f55a44368e90057628ec5a9eb9994dfada2a65fadf37ec8fc5471c5170cf193f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f55a44368e90057628ec5a9eb9994dfada2a65fadf37ec8fc5471c5170cf193f", kill_on_drop: false }`
[INFO] [stdout] f55a44368e90057628ec5a9eb9994dfada2a65fadf37ec8fc5471c5170cf193f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ebcab3aa55ff40460bd8063ba5a06d16b39242a58d3d64a1ed8405a5eccfa5c3
[INFO] running `Command { std: "docker" "start" "-a" "ebcab3aa55ff40460bd8063ba5a06d16b39242a58d3d64a1ed8405a5eccfa5c3", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::ops::Add`
[INFO] [stderr]  --> src/note/chord.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::ops::Add;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::scales::interval::ChordShape`
[INFO] [stderr]  --> src/note/chord.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::scales::interval::ChordShape;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `C4`, `NoteKind`, `Note`, and `Tet12`
[INFO] [stderr]  --> src/note/chord.rs:4:19
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{Line, Note, NoteKind, NotePitch, Piece, Scale, Tet12, C4};
[INFO] [stderr]   |                   ^^^^  ^^^^^^^^                           ^^^^^  ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Product`
[INFO] [stderr]  --> src/piece/line.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 |     iter::{Product, Sum},
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tet12::A4`
[INFO] [stderr]  --> src/scales/mod.rs:3:34
[INFO] [stderr]   |
[INFO] [stderr] 3 |     scales::{interval::Interval, tet12::A4},
[INFO] [stderr]   |                                  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a trait
[INFO] [stderr]    --> src/piece/mod.rs:410:1
[INFO] [stderr]     |
[INFO] [stderr] 410 | pub trait Reversable {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]    --> src/lib.rs:133:5
[INFO] [stderr]     |
[INFO] [stderr] 133 |     missing_docs,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/piece/mod.rs:411:5
[INFO] [stderr]     |
[INFO] [stderr] 411 |     fn reverse(self) -> Self;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]   --> src/scales/mod.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub mod interval;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/scales/mod.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn intervals() -> &'static [Interval];
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/scales/mod.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 73 |     fn get_chord(&self, degrees: &[isize]) -> crate::note::chord::Chord {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]  --> src/scales/interval.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Interval(pub f32);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]  --> src/scales/interval.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub const UNISON: Interval = Interval(0.0);
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub const MINOR_SECOND: Interval = Interval(1.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub const AUGMENTED_UNISON: Interval = Self::MINOR_SECOND;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub const MAJOR_SECOND: Interval = Interval(2.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub const MINOR_THIRD: Interval = Interval(3.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub const AUGMENTED_SECOND: Interval = Self::MINOR_THIRD;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub const MAJOR_THIRD: Interval = Interval(4.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub const PERFECT_FOURTH: Interval = Interval(5.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub const AUGMENTED_THIRD: Interval = Self::PERFECT_FOURTH;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub const TRITONE: Interval = Interval(6.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub const AUGMENTED_FOURTH: Interval = Self::TRITONE;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub const DIMINISHED_FIFTH: Interval = Self::TRITONE;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub const PERFECT_FIFTH: Interval = Interval(7.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub const MINOR_SIXTH: Interval = Interval(8.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub const AUGMENTED_FIFTH: Interval = Self::MINOR_SIXTH;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub const MAJOR_SIXTH: Interval = Interval(9.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub const MINOR_SEVENTH: Interval = Interval(10.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub const AUGMENTED_SIXTH: Interval = Self::MINOR_SEVENTH;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub const MAJOR_SEVENTH: Interval = Interval(11.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub const DIMINISHED_OCTAVE: Interval = Self::MAJOR_SEVENTH;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated constant
[INFO] [stderr]   --> src/scales/interval.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub const OCTAVE: Interval = Interval(12.0);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/scales/interval.rs:44:1
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub struct ChordShape(pub Vec<Interval>);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/scales/interval.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn transpose_to(&self, root: NotePitch) -> Chord {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/scales/interval.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub fn from_intervals(intervals: impl IntoIterator<Item = Interval>) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/scales/interval.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 | /     pub fn from_stacked_intervals(
[INFO] [stderr] 64 | |         intervals: impl IntoIterator<Item = Interval, IntoIter = impl ExactSizeIterator<Item = Interval>>,
[INFO] [stderr] 65 | |     ) -> Self {
[INFO] [stderr]    | |_____________^
[INFO] [stderr] 
[INFO] [stderr] warning: `symphoxy` (lib) generated 36 warnings (run `cargo fix --lib -p symphoxy` to apply 5 suggestions)
[INFO] [stderr] warning: `symphoxy` (lib test) generated 36 warnings (36 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/symphoxy-cbaf5f5303a87797)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test scales::tet12::test_get_note_name ... 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]    Doc-tests symphoxy
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test src/interactive/mod.rs - interactive::InteractiveTui::start (line 30) - compile ... ok
[INFO] [stdout] test src/interactive/mod.rs - interactive::InteractiveTui (line 13) - compile ... ok
[INFO] [stdout] test src/note/chord.rs - note::chord::Chord (line 13) ... FAILED
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::StringTuning (line 73) ... ok
[INFO] [stdout] test src/note/chord.rs - note::chord::Chord::from_degrees (line 54) ... ok
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::StringTuning<N>::get_pitches_at_frets (line 123) ... ok
[INFO] [stdout] test src/note/chord.rs - note::chord::Chord::new (line 38) ... ok
[INFO] [stdout] test src/lib.rs - (line 72) ... ok
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::Frets (line 9) ... ok
[INFO] [stdout] test src/lib.rs - (line 39) ... ok
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::Frets<N>::new_full (line 41) ... ok
[INFO] [stdout] test src/note/chord.rs - note::chord::Chord::strike (line 73) ... ok
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::StringTuning<N>::new (line 94) ... ok
[INFO] [stdout] test src/lib.rs - (line 51) ... ok
[INFO] [stdout] test src/lib.rs - prelude (line 193) ... ok
[INFO] [stdout] test src/lib.rs - (line 15) ... ok
[INFO] [stdout] test src/lib.rs - (line 63) ... ok
[INFO] [stdout] test src/instrument_tools/strings/mod.rs - instrument_tools::strings::StringTuning<N>::get_chord (line 150) ... ok
[INFO] [stdout] test src/note/length.rs - note::length::NoteLength (line 20) ... ok
[INFO] [stdout] test src/note/length.rs - note::length::LengthFluid (line 59) ... ok
[INFO] [stdout] test src/note/mod.rs - note::NoteLength::new (line 259) ... ok
[INFO] [stdout] test src/note/length.rs - note::length::dotted (line 177) ... ok
[INFO] [stdout] test src/note/mod.rs - note::NotePitch::new (line 207) ... ok
[INFO] [stdout] test src/note/length.rs - note::length::tie (line 201) ... ok
[INFO] [stdout] test src/note/mod.rs - note::Note::volume (line 40) ... ok
[INFO] [stdout] test src/note/mod.rs - note::NoteKind (line 116) ... ok
[INFO] [stdout] test src/note/mod.rs - note::Note (line 21) ... ok
[INFO] [stdout] test src/note/mod.rs - note::REST (line 285) ... ok
[INFO] [stdout] test src/note/mod.rs - note::Note::volume (line 55) ... ok
[INFO] [stdout] test src/note/length.rs - note::length::NoteLength (line 35) ... ok
[INFO] [stdout] test src/note/mod.rs - note::NotePitch (line 165) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::Timbre::CustomSourcePitched (line 83) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::TimbreFluid (line 102) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::Timbre (line 9) ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line::extend (line 81) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::TimbreFluid::with_timbre (line 118) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::Timbre::CustomSourceUnpitched (line 64) ... ok
[INFO] [stdout] test src/play/mod.rs - play::MusicPlayer<FileOutputConfig>::new_file (line 107) - compile ... ok
[INFO] [stdout] test src/play/mod.rs - play::MusicPlayer<LiveOutputConfig>::play (line 81) - compile ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line (line 43) ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line (line 26) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::Piece (line 28) ... ok
[INFO] [stdout] test src/note/timbre.rs - note::timbre::Timbre::Drums (line 47) ... ok
[INFO] [stdout] test src/play/mod.rs - play::MusicPlayer (line 22) - compile ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::Piece::volume (line 70) ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line::volume (line 116) ... ok
[INFO] [stdout] test src/play/mod.rs - play::MusicPlayer<LiveOutputConfig>::new_live (line 54) - compile ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line::get_notes_at_instant (line 138) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::Piece::get_notes_at_instant (line 114) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::Piece::new (line 54) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::Piece::length (line 152) ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line::length (line 100) ... ok
[INFO] [stdout] test src/play/render_to_wav.rs - play::render_to_wav::MusicPlayer<FileOutputConfig>::render_to_wav (line 39) - compile ... ok
[INFO] [stdout] test src/piece/line.rs - piece::line::Line::new (line 66) ... ok
[INFO] [stdout] test src/scales/mod.rs - scales::Scale (line 22) ... ok
[INFO] [stdout] test src/scales/mod.rs - scales::Scale::get_degree (line 46) ... ok
[INFO] [stdout] test src/scales/tet12/mod.rs - scales::tet12::Tet12 (line 97) ... ok
[INFO] [stdout] test src/scales/mod.rs - scales::Scale::get_degrees (line 62) ... ok
[INFO] [stdout] test src/scales/tet12/mod.rs - scales::tet12::Tet12::octave (line 118) ... ok
[INFO] [stdout] test src/scales/tet12/mod.rs - scales::tet12::Tet12::semitone (line 132) ... ok
[INFO] [stdout] test src/scales/tet12/mod.rs - scales::tet12::get_note_name (line 14) ... ok
[INFO] [stdout] test src/scales/tet12/mod.rs - scales::tet12::get_note_name_with_octave (line 35) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/note/chord.rs - note::chord::Chord (line 13) stdout ----
[INFO] [stdout] error[E0599]: no associated function or constant named `shape_from_semitone_offsets` found for struct `symphoxy::Chord` in the current scope
[INFO] [stdout]   --> src/note/chord.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 | let major_shape = Chord::shape_from_semitone_offsets([4, 7]); // +4 and +7 semitones from root
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function or constant not found in `symphoxy::Chord`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `symphoxy::Chord` consider using one of the following associated functions:
[INFO] [stdout]       symphoxy::Chord::new
[INFO] [stdout]       symphoxy::Chord::from_degrees
[INFO] [stdout]   --> src/note/chord.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn new(pitches: impl IntoIterator<Item = NotePitch>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn from_degrees(scale: &impl Scale, degrees: &[isize]) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/note/chord.rs - note::chord::Chord (line 13)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 61 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.15s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "ebcab3aa55ff40460bd8063ba5a06d16b39242a58d3d64a1ed8405a5eccfa5c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ebcab3aa55ff40460bd8063ba5a06d16b39242a58d3d64a1ed8405a5eccfa5c3", kill_on_drop: false }`
[INFO] [stdout] ebcab3aa55ff40460bd8063ba5a06d16b39242a58d3d64a1ed8405a5eccfa5c3
