[INFO] cloning repository https://github.com/marmikshah/sonarium
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/marmikshah/sonarium" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmikshah%2Fsonarium", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmikshah%2Fsonarium'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ee4dd6064841e5c6e5cae764f57cd8666f419292
[INFO] checking marmikshah/sonarium against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmikshah%2Fsonarium" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/marmikshah/sonarium
[INFO] finished tweaking git repo https://github.com/marmikshah/sonarium
[INFO] tweaked toml for git repo https://github.com/marmikshah/sonarium written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/marmikshah/sonarium on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/marmikshah/sonarium 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `base64`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | base64 = "0.22.1"
[INFO] [stderr]   | ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `base64`
[INFO] [stderr] warning: unused workspace dependency `tempfile`
[INFO] [stderr]   --> Cargo.toml:18:1
[INFO] [stderr]    |
[INFO] [stderr] 18 | tempfile = "3.27"
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tempfile`
[INFO] [stderr] warning: workspace (manifest) generated 2 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417
[INFO] running `Command { std: "docker" "start" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `base64`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | base64 = "0.22.1"
[INFO] [stderr]   | ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `base64`
[INFO] [stderr] warning: unused workspace dependency `tempfile`
[INFO] [stderr]   --> Cargo.toml:18:1
[INFO] [stderr]    |
[INFO] [stderr] 18 | tempfile = "3.27"
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tempfile`
[INFO] [stderr] warning: workspace (manifest) generated 2 warnings
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking pxfm v0.1.30
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking rustysynth v1.3.6
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking clap_builder v4.6.2
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking regex-automata v0.4.15
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]    Compiling pyo3-build-config v0.29.0
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking rustc-hash v2.1.3
[INFO] [stderr]    Compiling pyo3-ffi v0.29.0
[INFO] [stderr]    Compiling pyo3 v0.29.0
[INFO] [stderr]    Compiling numpy v0.29.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.13.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling pyo3-macros-backend v0.29.0
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerocopy-derive v0.8.55
[INFO] [stderr]     Checking ref-cast v1.0.25
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]     Checking clap v4.6.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking schemars v1.2.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]    Compiling pyo3-macros v0.29.0
[INFO] [stderr]     Checking tono-core v1.12.0 (/opt/rustwide/workdir/crates/tono-core)
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking tono-web v1.12.0 (/opt/rustwide/workdir/crates/tono-web)
[INFO] [stderr]     Checking tono-content v1.12.0 (/opt/rustwide/workdir/crates/tono-content)
[INFO] [stderr]     Checking tono v1.12.0 (/opt/rustwide/workdir/crates/tono-cli)
[INFO] [stderr]     Checking tono-py v1.12.0 (/opt/rustwide/workdir/crates/tono-py)
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/harmony.rs:58:44
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn transpose(&self, semitones: i16) -> PyResult<Pitch> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:111:45
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn degree(&self, n: u32, octave: i8) -> PyResult<Pitch> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:166:38
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn pitches(&self, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:177:45
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn invert(&self, n: u32, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn arp(&self, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/pattern.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 |     ) -> PyResult<Self> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:155:55
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn hit(&mut self, drum: &str, beats: Vec<f32>) -> PyResult<()> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:226:44
[INFO] [stdout]     |
[INFO] [stdout] 226 |     fn transpose(&self, semitones: i16) -> PyResult<Pattern> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:235:46
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn stretch(&self, num: u32, den: u32) -> PyResult<Pattern> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn at_beat(beat: f64) -> PyResult<PyAt> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn play(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:408:55
[INFO] [stdout]     |
[INFO] [stdout] 408 |     fn pause(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:414:54
[INFO] [stdout]     |
[INFO] [stdout] 414 |     fn stop(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:421:70
[INFO] [stdout]     |
[INFO] [stdout] 421 |     fn seek_beat(&self, beat: f64, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:432:68
[INFO] [stdout]     |
[INFO] [stdout] 432 |     fn seek_bar(&self, bar: u32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:438:85
[INFO] [stdout]     |
[INFO] [stdout] 438 |     fn set_loop_bars(&self, start: u32, end: u32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:444:60
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn clear_loop(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:451:69
[INFO] [stdout]     |
[INFO] [stdout] 451 |     fn set_gain(&self, gain: f32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:466:72
[INFO] [stdout]     |
[INFO] [stdout] 466 |     fn transition(&self, name: &str, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:478:84
[INFO] [stdout]     |
[INFO] [stdout] 478 |     fn stinger(&self, doc_json: &str, gain: f32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:495:83
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn swap(&self, program: PyRef<'_, Program>, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:511:48
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn metrics<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:535:53
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn capture_stop<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyList>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:551:49
[INFO] [stdout]     |
[INFO] [stdout] 551 |     fn snapshot<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:566:63
[INFO] [stdout]     |
[INFO] [stdout] 566 |     fn apply_snapshot(&self, snapshot: &Bound<'_, PyDict>) -> PyResult<()> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:615:60
[INFO] [stdout]     |
[INFO] [stdout] 615 |     fn fill<'py>(&self, py: Python<'py>, frames: usize) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/program.rs:98:47
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn render<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:125:10
[INFO] [stdout]     |
[INFO] [stdout] 125 |     ) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:157:53
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn render_stems<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:196:33
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn from_json(json: &str) -> PyResult<Self> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:205:35
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn load(path: &str) -> PyResult<Self> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:108:51
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn route(&self, py: Python<'_>, bus: &str) -> PyResult<()> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:124:63
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn send(&self, py: Python<'_>, bus: &str, amount: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:273:10
[INFO] [stdout]     |
[INFO] [stdout] 273 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:343:74
[INFO] [stdout]     |
[INFO] [stdout] 343 |     fn set_tempo_map(&mut self, points: Vec<(Bound<'_, PyAny>, f32)>) -> PyResult<()> {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:367:66
[INFO] [stdout]     |
[INFO] [stdout] 367 |     fn set_meter_map(&mut self, points: Vec<(u32, u32, u32)>) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:390:58
[INFO] [stdout]     |
[INFO] [stdout] 390 |     fn set_pickup(&mut self, beat: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:407:67
[INFO] [stdout]     |
[INFO] [stdout] 407 |     fn add_section(&mut self, name: &str, bar: u32, bars: u32) -> PyResult<()> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:426:70
[INFO] [stdout]     |
[INFO] [stdout] 426 |     fn add_marker(&mut self, name: &str, beat: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:451:10
[INFO] [stdout]     |
[INFO] [stdout] 451 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:506:10
[INFO] [stdout]     |
[INFO] [stdout] 506 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:552:82
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn compile(&self, py: Python<'_>, sample_rate: Option<u32>, target: &str) -> PyResult<Program> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:581:59
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn from_json(_cls: &Bound<'_, PyType>, json: &str) -> PyResult<Self> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:222:41
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn instrument(&self, name: &str) -> PyResult<Instrument> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:257:41
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn load_patch(&self, json: &str) -> PyResult<PatchVoice> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:296:66
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn note_on(&self, note: &Bound<'_, PyAny>, velocity: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn note_off(&self, note: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:340:66
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn note_on(&self, note: &Bound<'_, PyAny>, velocity: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:362:61
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn add_layer(&self, doc_json: &str, fade_in_at: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:379:42
[INFO] [stdout]     |
[INFO] [stdout] 379 |     fn stinger(&self, doc_json: &str) -> PyResult<()> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:406:65
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn trigger(&self, params: Option<BTreeMap<String, f32>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/lib.rs:69:52
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn render<'py>(py: Python<'py>, doc_json: &str) -> PyResult<Bound<'py, PyArray1<f32>>> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/lib.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ) -> PyResult<Bound<'py, PyArray1<f32>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 | / instrument_fn!(
[INFO] [stdout] 100 | |     piano,
[INFO] [stdout] 101 | |     "A piano voice — variants: grand (default), bright, mellow, felt, upright, honky-tonk.",
[INFO] [stdout] 102 | |     "piano",
[INFO] [stdout] ...   |
[INFO] [stdout] 109 | |     "honky-tonk" => catalog::GrandPiano::honky_tonk,
[INFO] [stdout] 110 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 | / instrument_fn!(
[INFO] [stdout] 112 | |     electric_piano,
[INFO] [stdout] 113 | |     "An electric piano voice — variants: rhodes (default), wurli, dx.",
[INFO] [stdout] 114 | |     "electric_piano",
[INFO] [stdout] ...   |
[INFO] [stdout] 118 | |     "dx" => catalog::ElectricPiano::dx,
[INFO] [stdout] 119 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 | / instrument_fn!(
[INFO] [stdout] 121 | |     organ,
[INFO] [stdout] 122 | |     "An organ voice — variants: tonewheel (default), rock.",
[INFO] [stdout] 123 | |     "organ",
[INFO] [stdout] ...   |
[INFO] [stdout] 126 | |     "rock" => catalog::Organ::rock,
[INFO] [stdout] 127 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 | / instrument_fn!(
[INFO] [stdout] 129 | |     strings,
[INFO] [stdout] 130 | |     "A string ensemble voice — variants: warm (default), ensemble.",
[INFO] [stdout] 131 | |     "strings",
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |     "ensemble" => catalog::Strings::ensemble,
[INFO] [stdout] 135 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 | / instrument_fn!(
[INFO] [stdout] 137 | |     bass,
[INFO] [stdout] 138 | |     "A bass voice — variants: finger (default), pick, sub, synth.",
[INFO] [stdout] 139 | |     "bass",
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |     "synth" => catalog::Bass::synth,
[INFO] [stdout] 145 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 | / instrument_fn!(
[INFO] [stdout] 147 | |     guitar,
[INFO] [stdout] 148 | |     "A guitar voice — variants: nylon (default), steel, electric.",
[INFO] [stdout] 149 | |     "guitar",
[INFO] [stdout] ...   |
[INFO] [stdout] 153 | |     "electric" => catalog::Guitar::electric,
[INFO] [stdout] 154 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 | / instrument_fn!(
[INFO] [stdout] 156 | |     drums,
[INFO] [stdout] 157 | |     "A General MIDI drum kit — variants: acoustic (default), classic, electronic, tr808.",
[INFO] [stdout] 158 | |     "drums",
[INFO] [stdout] ...   |
[INFO] [stdout] 163 | |     "tr808" => catalog::Drums::tr808,
[INFO] [stdout] 164 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 | / instrument_fn!(
[INFO] [stdout] 166 | |     brass,
[INFO] [stdout] 167 | |     "A brass voice — variants: section (default), stab.",
[INFO] [stdout] 168 | |     "brass",
[INFO] [stdout] ...   |
[INFO] [stdout] 171 | |     "stab" => catalog::Brass::stab,
[INFO] [stdout] 172 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 | / instrument_fn!(
[INFO] [stdout] 174 | |     flute,
[INFO] [stdout] 175 | |     "A flute voice — variants: concert (default).",
[INFO] [stdout] 176 | |     "flute",
[INFO] [stdout] 177 | |     "concert",
[INFO] [stdout] 178 | |     "concert" => catalog::Flute::concert,
[INFO] [stdout] 179 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 | / instrument_fn!(
[INFO] [stdout] 181 | |     mallets,
[INFO] [stdout] 182 | |     "A mallets voice — variants: marimba (default), vibraphone, glockenspiel.",
[INFO] [stdout] 183 | |     "mallets",
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |     "glockenspiel" => catalog::Mallets::glockenspiel,
[INFO] [stdout] 188 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 | / instrument_fn!(
[INFO] [stdout] 190 | |     bells,
[INFO] [stdout] 191 | |     "A bells voice — variants: tubular (default).",
[INFO] [stdout] 192 | |     "bells",
[INFO] [stdout] 193 | |     "tubular",
[INFO] [stdout] 194 | |     "tubular" => catalog::Bells::tubular,
[INFO] [stdout] 195 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tono-py` (lib) due to 66 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/harmony.rs:58:44
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn transpose(&self, semitones: i16) -> PyResult<Pitch> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:111:45
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn degree(&self, n: u32, octave: i8) -> PyResult<Pitch> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:166:38
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn pitches(&self, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:177:45
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn invert(&self, n: u32, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/harmony.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn arp(&self, octave: i8) -> PyResult<Vec<Pitch>> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/pattern.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 |     ) -> PyResult<Self> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:155:55
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn hit(&mut self, drum: &str, beats: Vec<f32>) -> PyResult<()> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:226:44
[INFO] [stdout]     |
[INFO] [stdout] 226 |     fn transpose(&self, semitones: i16) -> PyResult<Pattern> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/pattern.rs:235:46
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn stretch(&self, num: u32, den: u32) -> PyResult<Pattern> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn at_beat(beat: f64) -> PyResult<PyAt> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn play(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:408:55
[INFO] [stdout]     |
[INFO] [stdout] 408 |     fn pause(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:414:54
[INFO] [stdout]     |
[INFO] [stdout] 414 |     fn stop(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:421:70
[INFO] [stdout]     |
[INFO] [stdout] 421 |     fn seek_beat(&self, beat: f64, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:432:68
[INFO] [stdout]     |
[INFO] [stdout] 432 |     fn seek_bar(&self, bar: u32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:438:85
[INFO] [stdout]     |
[INFO] [stdout] 438 |     fn set_loop_bars(&self, start: u32, end: u32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:444:60
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn clear_loop(&self, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:451:69
[INFO] [stdout]     |
[INFO] [stdout] 451 |     fn set_gain(&self, gain: f32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:466:72
[INFO] [stdout]     |
[INFO] [stdout] 466 |     fn transition(&self, name: &str, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:478:84
[INFO] [stdout]     |
[INFO] [stdout] 478 |     fn stinger(&self, doc_json: &str, gain: f32, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:495:83
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn swap(&self, program: PyRef<'_, Program>, at: Option<&Bound<'_, PyAny>>) -> PyResult<u64> {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:511:48
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn metrics<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:535:53
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn capture_stop<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyList>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:551:49
[INFO] [stdout]     |
[INFO] [stdout] 551 |     fn snapshot<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:566:63
[INFO] [stdout]     |
[INFO] [stdout] 566 |     fn apply_snapshot(&self, snapshot: &Bound<'_, PyDict>) -> PyResult<()> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/performance.rs:615:60
[INFO] [stdout]     |
[INFO] [stdout] 615 |     fn fill<'py>(&self, py: Python<'py>, frames: usize) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/program.rs:98:47
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn render<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:125:10
[INFO] [stdout]     |
[INFO] [stdout] 125 |     ) -> PyResult<Bound<'py, PyArray2<f32>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:157:53
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn render_stems<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyDict>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:196:33
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn from_json(json: &str) -> PyResult<Self> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:205:35
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/program.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn load(path: &str) -> PyResult<Self> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:108:51
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn route(&self, py: Python<'_>, bus: &str) -> PyResult<()> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:124:63
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn send(&self, py: Python<'_>, bus: &str, amount: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:273:10
[INFO] [stdout]     |
[INFO] [stdout] 273 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:343:74
[INFO] [stdout]     |
[INFO] [stdout] 343 |     fn set_tempo_map(&mut self, points: Vec<(Bound<'_, PyAny>, f32)>) -> PyResult<()> {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:367:66
[INFO] [stdout]     |
[INFO] [stdout] 367 |     fn set_meter_map(&mut self, points: Vec<(u32, u32, u32)>) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:390:58
[INFO] [stdout]     |
[INFO] [stdout] 390 |     fn set_pickup(&mut self, beat: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:407:67
[INFO] [stdout]     |
[INFO] [stdout] 407 |     fn add_section(&mut self, name: &str, bar: u32, bars: u32) -> PyResult<()> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:426:70
[INFO] [stdout]     |
[INFO] [stdout] 426 |     fn add_marker(&mut self, name: &str, beat: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:451:10
[INFO] [stdout]     |
[INFO] [stdout] 451 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:506:10
[INFO] [stdout]     |
[INFO] [stdout] 506 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:552:82
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn compile(&self, py: Python<'_>, sample_rate: Option<u32>, target: &str) -> PyResult<Program> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/song.rs:581:59
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn from_json(_cls: &Bound<'_, PyType>, json: &str) -> PyResult<Self> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:222:41
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn instrument(&self, name: &str) -> PyResult<Instrument> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:257:41
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn load_patch(&self, json: &str) -> PyResult<PatchVoice> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:296:66
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn note_on(&self, note: &Bound<'_, PyAny>, velocity: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn note_off(&self, note: &Bound<'_, PyAny>) -> PyResult<()> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:340:66
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn note_on(&self, note: &Bound<'_, PyAny>, velocity: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:362:61
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn add_layer(&self, doc_json: &str, fade_in_at: f32) -> PyResult<()> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:379:42
[INFO] [stdout]     |
[INFO] [stdout] 379 |     fn stinger(&self, doc_json: &str) -> PyResult<()> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/stream.rs:406:65
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn trigger(&self, params: Option<BTreeMap<String, f32>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> crates/tono-py/src/lib.rs:69:52
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn render<'py>(py: Python<'py>, doc_json: &str) -> PyResult<Bound<'py, PyArray1<f32>>> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/lib.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ) -> PyResult<Bound<'py, PyArray1<f32>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 | / instrument_fn!(
[INFO] [stdout] 100 | |     piano,
[INFO] [stdout] 101 | |     "A piano voice — variants: grand (default), bright, mellow, felt, upright, honky-tonk.",
[INFO] [stdout] 102 | |     "piano",
[INFO] [stdout] ...   |
[INFO] [stdout] 109 | |     "honky-tonk" => catalog::GrandPiano::honky_tonk,
[INFO] [stdout] 110 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 | / instrument_fn!(
[INFO] [stdout] 112 | |     electric_piano,
[INFO] [stdout] 113 | |     "An electric piano voice — variants: rhodes (default), wurli, dx.",
[INFO] [stdout] 114 | |     "electric_piano",
[INFO] [stdout] ...   |
[INFO] [stdout] 118 | |     "dx" => catalog::ElectricPiano::dx,
[INFO] [stdout] 119 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 | / instrument_fn!(
[INFO] [stdout] 121 | |     organ,
[INFO] [stdout] 122 | |     "An organ voice — variants: tonewheel (default), rock.",
[INFO] [stdout] 123 | |     "organ",
[INFO] [stdout] ...   |
[INFO] [stdout] 126 | |     "rock" => catalog::Organ::rock,
[INFO] [stdout] 127 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 | / instrument_fn!(
[INFO] [stdout] 129 | |     strings,
[INFO] [stdout] 130 | |     "A string ensemble voice — variants: warm (default), ensemble.",
[INFO] [stdout] 131 | |     "strings",
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |     "ensemble" => catalog::Strings::ensemble,
[INFO] [stdout] 135 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 | / instrument_fn!(
[INFO] [stdout] 137 | |     bass,
[INFO] [stdout] 138 | |     "A bass voice — variants: finger (default), pick, sub, synth.",
[INFO] [stdout] 139 | |     "bass",
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |     "synth" => catalog::Bass::synth,
[INFO] [stdout] 145 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 | / instrument_fn!(
[INFO] [stdout] 147 | |     guitar,
[INFO] [stdout] 148 | |     "A guitar voice — variants: nylon (default), steel, electric.",
[INFO] [stdout] 149 | |     "guitar",
[INFO] [stdout] ...   |
[INFO] [stdout] 153 | |     "electric" => catalog::Guitar::electric,
[INFO] [stdout] 154 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 | / instrument_fn!(
[INFO] [stdout] 156 | |     drums,
[INFO] [stdout] 157 | |     "A General MIDI drum kit — variants: acoustic (default), classic, electronic, tr808.",
[INFO] [stdout] 158 | |     "drums",
[INFO] [stdout] ...   |
[INFO] [stdout] 163 | |     "tr808" => catalog::Drums::tr808,
[INFO] [stdout] 164 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 | / instrument_fn!(
[INFO] [stdout] 166 | |     brass,
[INFO] [stdout] 167 | |     "A brass voice — variants: section (default), stab.",
[INFO] [stdout] 168 | |     "brass",
[INFO] [stdout] ...   |
[INFO] [stdout] 171 | |     "stab" => catalog::Brass::stab,
[INFO] [stdout] 172 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 | / instrument_fn!(
[INFO] [stdout] 174 | |     flute,
[INFO] [stdout] 175 | |     "A flute voice — variants: concert (default).",
[INFO] [stdout] 176 | |     "flute",
[INFO] [stdout] 177 | |     "concert",
[INFO] [stdout] 178 | |     "concert" => catalog::Flute::concert,
[INFO] [stdout] 179 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 | / instrument_fn!(
[INFO] [stdout] 181 | |     mallets,
[INFO] [stdout] 182 | |     "A mallets voice — variants: marimba (default), vibraphone, glockenspiel.",
[INFO] [stdout] 183 | |     "mallets",
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |     "glockenspiel" => catalog::Mallets::glockenspiel,
[INFO] [stdout] 188 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> crates/tono-py/src/instruments.rs:89:36
[INFO] [stdout]     |
[INFO] [stdout]  84 |   macro_rules! instrument_fn {
[INFO] [stdout] ...
[INFO] [stdout]  89 |           fn $name(variant: &str) -> PyResult<Voice> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 | / instrument_fn!(
[INFO] [stdout] 190 | |     bells,
[INFO] [stdout] 191 | |     "A bells voice — variants: tubular (default).",
[INFO] [stdout] 192 | |     "bells",
[INFO] [stdout] 193 | |     "tubular",
[INFO] [stdout] 194 | |     "tubular" => catalog::Bells::tubular,
[INFO] [stdout] 195 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tono-py` (lib test) due to 66 previous errors
[INFO] running `Command { std: "docker" "inspect" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417", kill_on_drop: false }`
[INFO] [stdout] bee6ababd06ac401bfd0ef19414a5201125057db024153cf9bb318f18f30e417
