[INFO] cloning repository https://github.com/LaurentMazare/xn
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LaurentMazare/xn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLaurentMazare%2Fxn", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLaurentMazare%2Fxn'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 669e6d94bca870ef25879d8f498be3ca1d63cc4f
[INFO] checking LaurentMazare/xn against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLaurentMazare%2Fxn" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/LaurentMazare/xn
[INFO] finished tweaking git repo https://github.com/LaurentMazare/xn
[INFO] tweaked toml for git repo https://github.com/LaurentMazare/xn written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LaurentMazare/xn 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/LaurentMazare/xn 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3
[INFO] running `Command { std: "docker" "start" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3", 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" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3", 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" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling pulp v0.22.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]    Compiling dyn-stack-macros v0.1.3
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.0
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking dyn-stack v0.13.2
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking ureq-proto v0.5.3
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking socks v0.3.4
[INFO] [stderr]     Checking console v0.16.2
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling monostate-impl v0.1.18
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling xn v0.2.12 (/opt/rustwide/workdir/xn-core)
[INFO] [stderr]     Checking unit-prefix v0.5.2
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.2
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking indicatif v0.18.4
[INFO] [stderr]     Checking clap_builder v4.5.58
[INFO] [stderr]     Checking macro_rules_attribute v0.2.2
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking monostate v0.1.18
[INFO] [stderr]     Checking rayon-cond v0.4.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking safetensors v0.7.0
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]     Checking onig v6.5.1
[INFO] [stderr]     Checking dary_heap v0.3.8
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking unicode_categories v0.1.1
[INFO] [stderr]     Checking tracing-chrome v0.7.2
[INFO] [stderr]     Checking ureq v3.2.0
[INFO] [stderr]     Checking clap v4.5.58
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking xn-gemm-common v0.20.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking xn-gemm-f32 v0.20.2
[INFO] [stderr]     Checking xn-gemm-c32 v0.20.2
[INFO] [stderr]     Checking xn-gemm-c64 v0.20.2
[INFO] [stderr]     Checking xn-gemm-f64 v0.20.2
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking hf-hub v0.5.0
[INFO] [stderr]     Checking tokenizers v0.21.4
[INFO] [stderr]     Checking xn-gemm-f16 v0.20.2
[INFO] [stderr]     Checking xn-gemm v0.20.2
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/backend.rs:389:9
[INFO] [stdout]     |
[INFO] [stdout] 389 |         crate::bail!("sdpa_decode is not implemented for this backend")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:618:23
[INFO] [stdout]     |
[INFO] [stdout] 618 |             Err(e) => crate::bail!("failed to create normal distribution for randn: {e}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |             crate::bail!("rope unexpected size for dst {} {b} {h} {t} {d}", dst.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:659:13
[INFO] [stdout]     |
[INFO] [stdout] 659 |             crate::bail!("rope unexpected size for src {} {b} {h} {t} {d}", src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:699:13
[INFO] [stdout]     |
[INFO] [stdout] 699 |             crate::bail!("rope-i unexpected size for dst {} {b} {h} {t} {d}", dst.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:702:13
[INFO] [stdout]     |
[INFO] [stdout] 702 |             crate::bail!("rope-i unexpected size for src {} {b} {h} {t} {d}", src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/cpu_backend.rs:1355:13
[INFO] [stdout]      |
[INFO] [stdout] 1355 |             crate::bail!("sdpa_decode: head dim {d} exceeds {CPU_SDPA_MAX_HEAD_DIM}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/cpu_backend.rs:1358:13
[INFO] [stdout]      |
[INFO] [stdout] 1358 |             crate::bail!("sdpa_decode: empty kv")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/dtype.rs:55:18
[INFO] [stdout]     |
[INFO] [stdout]  55 |             _ => crate::bail!("Invalid DTypeQ: {s}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             crate::bail!("{op}: cannot use when dst and src share their storage");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |             crate::bail!("rand_uniform: upper bound ({up}) must be >= lower bound ({lo})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:351:18
[INFO] [stdout]     |
[INFO] [stdout] 351 |               _ => crate::bail!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 352 | |                 "apply_causality_mask expects 3D or 4D tensor, got shape {:?}",
[INFO] [stdout] 353 | |                 self.shape()
[INFO] [stdout] 354 | |             ),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |             crate::bail!("rms_norm_ eps must be positive");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |             crate::bail!("layer_norm_ eps must be positive");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 | /             crate::bail!(
[INFO] [stdout] 427 | |                 "matmul requires at least 2D tensors, got lhs {:?}, rhs {:?}",
[INFO] [stdout] 428 | |                 lhs.shape(),
[INFO] [stdout] 429 | |                 rhs.shape()
[INFO] [stdout] 430 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 | /             crate::bail!(
[INFO] [stdout] 446 | |                 "matmul inner dimension mismatch: lhs {:?}, rhs {:?}, rhs_t={rhs_t}",
[INFO] [stdout] 447 | |                 lhs.shape(),
[INFO] [stdout] 448 | |                 rhs.shape()
[INFO] [stdout] 449 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:460:13
[INFO] [stdout]     |
[INFO] [stdout] 460 | /             crate::bail!(
[INFO] [stdout] 461 | |                 "matmul batch dimension mismatch: lhs {:?}, rhs {:?}",
[INFO] [stdout] 462 | |                 lhs.shape(),
[INFO] [stdout] 463 | |                 rhs.shape()
[INFO] [stdout] 464 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:475:13
[INFO] [stdout]     |
[INFO] [stdout] 475 | /             crate::bail!(
[INFO] [stdout] 476 | |                 "matmul dst is too small, dst {} < {dst_elems}, lhs {:?} rhs {:?}",
[INFO] [stdout] 477 | |                 storage_len,
[INFO] [stdout] 478 | |                 lhs.shape(),
[INFO] [stdout] 479 | |                 rhs.shape()
[INFO] [stdout] 480 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:579:13
[INFO] [stdout]     |
[INFO] [stdout] 579 | /             crate::bail!(
[INFO] [stdout] 580 | |                 "rope_ requires even d dimension, got d={d}, {:?} {:?}",
[INFO] [stdout] 581 | |                 self.shape(),
[INFO] [stdout] 582 | |                 cos.shape()
[INFO] [stdout] 583 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 | /             crate::bail!(
[INFO] [stdout] 587 | |                 "rope_ position out of range, pos={pos} + t={t} > max_pos={max_pos}, {:?} {:?}",
[INFO] [stdout] 588 | |                 self.shape(),
[INFO] [stdout] 589 | |                 cos.shape()
[INFO] [stdout] 590 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:610:13
[INFO] [stdout]     |
[INFO] [stdout] 610 | /             crate::bail!(
[INFO] [stdout] 611 | |                 "rope_i_ requires even d dimension, got d={d}, {:?} {:?}",
[INFO] [stdout] 612 | |                 self.shape(),
[INFO] [stdout] 613 | |                 cos.shape()
[INFO] [stdout] 614 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:617:13
[INFO] [stdout]     |
[INFO] [stdout] 617 | /             crate::bail!(
[INFO] [stdout] 618 | |                 "rope_i_ position out of range, pos={pos} + t={t} > max_pos={max_pos}, {:?} {:?}",
[INFO] [stdout] 619 | |                 self.shape(),
[INFO] [stdout] 620 | |                 cos.shape()
[INFO] [stdout] 621 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:712:13
[INFO] [stdout]     |
[INFO] [stdout] 712 | /             crate::bail!(
[INFO] [stdout] 713 | |                 "conv1d input must be 3D (batch, in_channels, length), got {:?}",
[INFO] [stdout] 714 | |                 src.shape()
[INFO] [stdout] 715 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:718:13
[INFO] [stdout]     |
[INFO] [stdout] 718 | /             crate::bail!(
[INFO] [stdout] 719 | |                 "conv1d kernel must be 3D (out_channels, in_channels/groups, kernel_size), got {:?}",
[INFO] [stdout] 720 | |                 kernel.shape()
[INFO] [stdout] 721 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:735:13
[INFO] [stdout]     |
[INFO] [stdout] 735 | /             crate::bail!(
[INFO] [stdout] 736 | |                 "conv1d output shape mismatch: expected {:?}, got {:?}",
[INFO] [stdout] 737 | |                 [batch, out_channels, out_length],
[INFO] [stdout] 738 | |                 dst_dims
[INFO] [stdout] 739 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:781:13
[INFO] [stdout]     |
[INFO] [stdout] 781 | /             crate::bail!(
[INFO] [stdout] 782 | |                 "conv_transpose1d input must be 3D (batch, in_channels, length), got {:?}",
[INFO] [stdout] 783 | |                 src.shape()
[INFO] [stdout] 784 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:787:13
[INFO] [stdout]     |
[INFO] [stdout] 787 | /             crate::bail!(
[INFO] [stdout] 788 | |                 "conv_transpose1d kernel must be 3D (in_channels, out_channels/groups, kernel_size), got {:?}",
[INFO] [stdout] 789 | |                 kernel.shape()
[INFO] [stdout] 790 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 | /             crate::bail!(
[INFO] [stdout] 806 | |                 "conv_transpose1d output shape mismatch: expected {:?}, got {:?}",
[INFO] [stdout] 807 | |                 [batch, out_channels, out_length],
[INFO] [stdout] 808 | |                 dst_dims
[INFO] [stdout] 809 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:861:13
[INFO] [stdout]     |
[INFO] [stdout] 861 |             crate::bail!("broadcast mismatch: lhs dim {i} is {lhs_dim} but output is {out_dim}",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:864:13
[INFO] [stdout]     |
[INFO] [stdout] 864 |             crate::bail!("broadcast mismatch: rhs dim {i} is {rhs_dim} but output is {out_dim}",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:921:17
[INFO] [stdout]     |
[INFO] [stdout] 921 |                 crate::bail!("inconsistent batch size in rope {b_sz} {cs_dims:?}",)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:925:14
[INFO] [stdout]     |
[INFO] [stdout] 925 |         _ => crate::bail!("cos/sin has to be 2D or 3D in rope {b_sz} {cs_dims:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/kv_cache.rs:44:13
[INFO] [stdout]     |
[INFO] [stdout]  44 | /             crate::bail!(
[INFO] [stdout]  45 | |                 "kv-cache: above max-seq-len {}+{seq_len}>{}",
[INFO] [stdout]  46 | |                 self.current_seq_len,
[INFO] [stdout]  47 | |                 self.max_seq_len
[INFO] [stdout]  48 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |             crate::bail!("unpad1d: tensor len {len} is too low for unpad {unpad_l} + {unpad_r}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:665:13
[INFO] [stdout]     |
[INFO] [stdout] 665 |             crate::bail!("LSTM in SeaNet is not supported");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:868:13
[INFO] [stdout]     |
[INFO] [stdout] 868 |             crate::bail!("LSTM in SeaNet is not supported");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/models/mimi.rs:1729:13
[INFO] [stdout]      |
[INFO] [stdout] 1729 |             crate::bail!("empty layers in ResidualVectorQuantization");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         None => crate::bail!("tensor '{name}' not found"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | /         crate::bail!(
[INFO] [stdout] 138 | |             "shape mismatch for tensor '{name}': expected {shape:?}, found {:?}",
[INFO] [stdout] 139 | |             td.shape
[INFO] [stdout] 140 | |         );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |             crate::bail!("{} unused tensors {unused:?}", unused.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:19:13
[INFO] [stdout]     |
[INFO] [stdout]  19 |             crate::bail!("cannot broadcast between shapes {lhs:?} and {rhs:?}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             crate::bail!("flatten: start_dim {start_dim} > end_dim {end_dim}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             crate::bail!("t requires at least 2 dimensions");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:304:13
[INFO] [stdout]     |
[INFO] [stdout] 304 |             crate::bail!("sdpa_decode expects a (b, 1, h, d) query, got {:?}", self.shape)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:310:17
[INFO] [stdout]     |
[INFO] [stdout] 310 | /                 crate::bail!(
[INFO] [stdout] 311 | |                     "sdpa_decode: {name} shape {:?} incompatible with q {:?}",
[INFO] [stdout] 312 | |                     t.shape(),
[INFO] [stdout] 313 | |                     self.shape
[INFO] [stdout] 314 | |                 )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             crate::bail!("sdpa_decode: k has {kv} positions but v has {}", v.dims()[1])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 | /             crate::bail!(
[INFO] [stdout] 392 | |                 "sdpa_decode: mask {:?} must be {kv} terms, or {b} rows of {kv} shaped \
[INFO] [stdout] 393 | |                  ({b}, {kv}) or ({b}, 1, 1, {kv}); a mask per head is not supported",
[INFO] [stdout] 394 | |                 mask.shape
[INFO] [stdout] 395 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |             crate::bail!("in_channels ({in_channels}) must be divisible by groups ({groups})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:457:13
[INFO] [stdout]     |
[INFO] [stdout] 457 |             crate::bail!("out_channels ({out_channels}) must be divisible by groups ({groups})",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:460:13
[INFO] [stdout]     |
[INFO] [stdout] 460 | /             crate::bail!(
[INFO] [stdout] 461 | |                 "kernel in_channels/groups mismatch: expected {}, got {kernel_in_channels}",
[INFO] [stdout] 462 | |                 in_channels / groups,
[INFO] [stdout] 463 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 crate::bail!(
[INFO] [stdout] 478 | |                     "bias shape mismatch: expected [{out_channels}], got {:?}",
[INFO] [stdout] 479 | |                     bias.shape()
[INFO] [stdout] 480 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:513:13
[INFO] [stdout]     |
[INFO] [stdout] 513 |             crate::bail!("in_channels ({in_channels}) must be divisible by groups ({groups})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 | /             crate::bail!(
[INFO] [stdout] 517 | |                 "kernel in_channels mismatch: expected {in_channels}, got {k_in_channels}",
[INFO] [stdout] 518 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:533:17
[INFO] [stdout]     |
[INFO] [stdout] 533 | /                 crate::bail!(
[INFO] [stdout] 534 | |                     "bias shape mismatch: expected [{out_channels}], got {:?}",
[INFO] [stdout] 535 | |                     bias.shape()
[INFO] [stdout] 536 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:607:17
[INFO] [stdout]     |
[INFO] [stdout] 607 | /                 crate::bail!(
[INFO] [stdout] 608 | |                     "sum_keepdim: dimension {} out of range for tensor of rank {}",
[INFO] [stdout] 609 | |                     dim,
[INFO] [stdout] 610 | |                     src.rank()
[INFO] [stdout] 611 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:789:13
[INFO] [stdout]     |
[INFO] [stdout] 789 |             crate::bail!("cannot pad_with_same on dimension with size 0");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:27:18
[INFO] [stdout]     |
[INFO] [stdout]  27 |             _ => crate::bail!("unknown magic {value:08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:55:18
[INFO] [stdout]     |
[INFO] [stdout]  55 |             _ => crate::bail!("ggml: unsupported magic/version {magic:?}/{version}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | /         crate::bail!(
[INFO] [stdout] 138 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 139 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:161:14
[INFO] [stdout]     |
[INFO] [stdout] 161 |         _ => crate::bail!("quantized type {ggml_dtype:?} is not supported yet"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |         Err(e) => crate::bail!("Error creating tensor {name}: {e}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:224:21
[INFO] [stdout]     |
[INFO] [stdout] 224 |             None => crate::bail!("cannot find tensor with name '{name}'"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:22:18
[INFO] [stdout]     |
[INFO] [stdout]  22 |             _ => crate::bail!("unknown magic 0x{value:08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:44:18
[INFO] [stdout]     |
[INFO] [stdout]  44 |             _ => crate::bail!("gguf: unsupported magic/version {magic:?}/{version}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:66:13
[INFO] [stdout]     |
[INFO] [stdout]  66 | /             crate::bail!(
[INFO] [stdout]  67 | |                 "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout]  68 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:175:18
[INFO] [stdout]     |
[INFO] [stdout] 175 |             v => crate::bail!("not a u8 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:182:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |             v => crate::bail!("not a i8 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:189:18
[INFO] [stdout]     |
[INFO] [stdout] 189 |             v => crate::bail!("not a u16 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:196:18
[INFO] [stdout]     |
[INFO] [stdout] 196 |             v => crate::bail!("not a i16 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |             v => crate::bail!("not a u32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |             v => crate::bail!("not a i32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:223:18
[INFO] [stdout]     |
[INFO] [stdout] 223 |             v => crate::bail!("not a u64 or upcastable to u64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |             v => crate::bail!("not a i64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |             v => crate::bail!("not a f32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:244:18
[INFO] [stdout]     |
[INFO] [stdout] 244 |             v => crate::bail!("not a f64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:251:18
[INFO] [stdout]     |
[INFO] [stdout] 251 |             v => crate::bail!("not a bool {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:258:18
[INFO] [stdout]     |
[INFO] [stdout] 258 |             v => crate::bail!("not a vec {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:265:18
[INFO] [stdout]     |
[INFO] [stdout] 265 |             v => crate::bail!("not a string {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:288:22
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 b => crate::bail!("unexpected bool value {b}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         crate::bail!("multiple value-types in the same array {value_type:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:365:18
[INFO] [stdout]     |
[INFO] [stdout] 365 |             v => crate::bail!("unrecognized value-type {v:#08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:480:21
[INFO] [stdout]     |
[INFO] [stdout] 480 |             None => crate::bail!("cannot find tensor info for {name}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:530:13
[INFO] [stdout]     |
[INFO] [stdout] 530 | /             crate::bail!(
[INFO] [stdout] 531 | |                 "internal error, unexpected current position {tensor_start_pos} {offset} {pos}"
[INFO] [stdout] 532 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |             crate::bail!("dequantize_row_q4_0: {k} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |             crate::bail!("{k} is not divisible by {}", qk);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |             crate::bail!("vec_dot_q4_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |             crate::bail!("vec_dot_q4_1_q8_1: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |             crate::bail!("vec_dot_q4_1_q8_1: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 382 |             crate::bail!("dequantize_row_q4_1: {k} is not divisible by {QK4_1}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             crate::bail!("vec_dot_q5_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |             crate::bail!("vec_dot_q5_0_q8_0: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |             crate::bail!("size mismatch {k} {} {}", ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 481 |             crate::bail!("dequantize_row_q5_0: {k} is not divisible by {QK5_0}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |             crate::bail!("vec_dot_q5_1_q8_1: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |             crate::bail!("vec_dot_q5_1_q8_1: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             crate::bail!("dequantize_row_q5_1: {k} is not divisible by {QK5_1}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:621:13
[INFO] [stdout]     |
[INFO] [stdout] 621 |             crate::bail!("dequantize_row_q8_0: {k} is not divisible by {QK8_0}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |             crate::bail!("{k} is not divisible by {}", Self::BLCK_SIZE);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:644:13
[INFO] [stdout]     |
[INFO] [stdout] 644 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:680:13
[INFO] [stdout]     |
[INFO] [stdout] 680 |             crate::bail!("vec_dot_q8_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:851:13
[INFO] [stdout]     |
[INFO] [stdout] 851 |             crate::bail!("size mismatch {k} {} {}", ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:901:13
[INFO] [stdout]     |
[INFO] [stdout] 901 |             crate::bail!("vec_dot_q2k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1076:13
[INFO] [stdout]      |
[INFO] [stdout] 1076 |             crate::bail!("vec_dot_q3k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1341:13
[INFO] [stdout]      |
[INFO] [stdout] 1341 |             crate::bail!("vec_dot_q4k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1527:13
[INFO] [stdout]      |
[INFO] [stdout] 1527 |             crate::bail!("vec_dot_q5k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1747:13
[INFO] [stdout]      |
[INFO] [stdout] 1747 |             crate::bail!("vec_dot_q6k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1805:13
[INFO] [stdout]      |
[INFO] [stdout] 1805 | /             crate::bail!(
[INFO] [stdout] 1806 | |                 "quantize_row_q6k: size mismatch {} {} {}",
[INFO] [stdout] 1807 | |                 xs.len(),
[INFO] [stdout] 1808 | |                 ys.len(),
[INFO] [stdout] 1809 | |                 Self::BLCK_SIZE
[INFO] [stdout] 1810 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1879:13
[INFO] [stdout]      |
[INFO] [stdout] 1879 |             crate::bail!("dequantize_row_q6k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1931:13
[INFO] [stdout]      |
[INFO] [stdout] 1931 |             crate::bail!("vec_dot_q8k_q8k: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1947:13
[INFO] [stdout]      |
[INFO] [stdout] 1947 |             crate::bail!("quantize_row_q8k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1986:13
[INFO] [stdout]      |
[INFO] [stdout] 1986 |             crate::bail!("dequantize_row_q8k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2007:9
[INFO] [stdout]      |
[INFO] [stdout] 2007 |         crate::bail!("unexpected lhs length {} {mkn:?}", lhs.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2041:13
[INFO] [stdout]      |
[INFO] [stdout] 2041 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2044:13
[INFO] [stdout]      |
[INFO] [stdout] 2044 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2052:13
[INFO] [stdout]      |
[INFO] [stdout] 2052 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2060:13
[INFO] [stdout]      |
[INFO] [stdout] 2060 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2078:13
[INFO] [stdout]      |
[INFO] [stdout] 2078 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2081:13
[INFO] [stdout]      |
[INFO] [stdout] 2081 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2090:13
[INFO] [stdout]      |
[INFO] [stdout] 2090 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2100:13
[INFO] [stdout]      |
[INFO] [stdout] 2100 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2120:13
[INFO] [stdout]      |
[INFO] [stdout] 2120 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2123:13
[INFO] [stdout]      |
[INFO] [stdout] 2123 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2132:13
[INFO] [stdout]      |
[INFO] [stdout] 2132 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2143:13
[INFO] [stdout]      |
[INFO] [stdout] 2143 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             crate::bail!("shape [{n}, {k}] cannot be interleaved as q8_0_4x8")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |             crate::bail!("expected {} q8_0 blocks for [{n}, {k}], got {}", n * kb, src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |             crate::bail!("matmul_t: n mismatch, weights hold {} but got {n}", self.n)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |             crate::bail!("matmul_t: k mismatch, weights hold {} but got {k}", self.kb * QK8_0)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             crate::bail!("matmul_t: expected {} lhs elements, got {}", m * k, lhs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             crate::bail!("matmul_t: dst too small ({} < {})", dst.len(), m * n)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/utils.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout]  22 | /         crate::bail!(
[INFO] [stdout]  23 | |             "quantize {dtype:?}: expected {expected_blocks} blocks but only {actual_blocks} were provided!"
[INFO] [stdout]  24 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/utils.rs:44:9
[INFO] [stdout]     |
[INFO] [stdout]  44 | /         crate::bail!(
[INFO] [stdout]  45 | |             "dequantize {dtype:?}: ys (len = {actual_output_len}) does not match the expected length of {expected_output_len}!"
[INFO] [stdout]  46 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |             _ => crate::bail!("unknown dtype for tensor {u}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |         crate::bail!("scalar tensor cannot be quantized {shape:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 | /         crate::bail!(
[INFO] [stdout] 269 | |             "quantized tensor must have their last dim divisible by block size {shape:?} {}",
[INFO] [stdout] 270 | |             block_size
[INFO] [stdout] 271 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             crate::bail!("tensor size ({shape:?}) is not divisible by block size {}", block_size)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |             crate::bail!("input tensor has only one dimension {src_shape:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             crate::bail!("input tensor {src_shape:?} incompatible with {:?}", weight.shape)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:444:1
[INFO] [stdout]     |
[INFO] [stdout] 444 |   backend_q_f32!(Q40F32, GgmlDType::Q4_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:445:1
[INFO] [stdout]     |
[INFO] [stdout] 445 |   backend_q_f32!(Q41F32, GgmlDType::Q4_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:446:1
[INFO] [stdout]     |
[INFO] [stdout] 446 |   backend_q_f32!(Q50F32, GgmlDType::Q5_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 |   backend_q_f32!(Q51F32, GgmlDType::Q5_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:448:1
[INFO] [stdout]     |
[INFO] [stdout] 448 |   backend_q_f32!(Q80F32, GgmlDType::Q8_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:449:1
[INFO] [stdout]     |
[INFO] [stdout] 449 |   backend_q_f32!(Q81F32, GgmlDType::Q8_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:450:1
[INFO] [stdout]     |
[INFO] [stdout] 450 |   backend_q_f32!(Q2kF32, GgmlDType::Q2K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:451:1
[INFO] [stdout]     |
[INFO] [stdout] 451 |   backend_q_f32!(Q3kF32, GgmlDType::Q3K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:452:1
[INFO] [stdout]     |
[INFO] [stdout] 452 |   backend_q_f32!(Q4kF32, GgmlDType::Q4K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:453:1
[INFO] [stdout]     |
[INFO] [stdout] 453 |   backend_q_f32!(Q5kF32, GgmlDType::Q5K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 |   backend_q_f32!(Q6kF32, GgmlDType::Q6K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:455:1
[INFO] [stdout]     |
[INFO] [stdout] 455 |   backend_q_f32!(Q8kF32, GgmlDType::Q8K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/shape.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         bail!("cannot reshape tensor of {el_count} elements to {s:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/shape.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         bail!("cannot reshape tensor with {el_count} elements to {s:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/streaming.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             crate::bail!("streaming module should only be used with constant steps")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 | /             crate::bail!(
[INFO] [stdout] 140 | |                 "to_scalar can only be called on a scalar (rank 0) tensor, but got shape {:?}",
[INFO] [stdout] 141 | |                 self.shape()
[INFO] [stdout] 142 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 | /             crate::bail!(
[INFO] [stdout] 152 | |                 "to_vec1 can only be called on a tensor of shape [_], but got shape {:?}",
[INFO] [stdout] 153 | |                 self.shape
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 | /             crate::bail!(
[INFO] [stdout] 214 | |                 "reshape: cannot reshape tensor of {} elements to shape {:?} ({} elements)",
[INFO] [stdout] 215 | |                 self.elem_count(),
[INFO] [stdout] 216 | |                 shape,
[INFO] [stdout] 217 | |                 shape.elem_count()
[INFO] [stdout] 218 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 | /             crate::bail!(
[INFO] [stdout] 234 | |                 "squeeze: cannot squeeze dimension {dim} with size {} (expected size 1)",
[INFO] [stdout] 235 | |                 dims[dim]
[INFO] [stdout] 236 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 | /             crate::bail!(
[INFO] [stdout] 310 | |                 "from_vec: data length {} does not match shape {:?} with {} elements",
[INFO] [stdout] 311 | |                 data.len(),
[INFO] [stdout] 312 | |                 shape,
[INFO] [stdout] 313 | |                 shape.elem_count()
[INFO] [stdout] 314 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             crate::bail!("cat requires at least one tensor");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |                 crate::bail!("cat: tensor {i} has rank {} but expected {rank}", t.rank());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout] 342 | /                     crate::bail!(
[INFO] [stdout] 343 | |                         "cat: tensor {i} has shape {:?} but expected dimension {d} to be {}",
[INFO] [stdout] 344 | |                         t.shape(),
[INFO] [stdout] 345 | |                         first.dims()[d]
[INFO] [stdout] 346 | |                     );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |             crate::bail!("stack requires at least one tensor");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:405:17
[INFO] [stdout]     |
[INFO] [stdout] 405 | /                 crate::bail!(
[INFO] [stdout] 406 | |                     "stack: tensor {i} has shape {:?} but expected {:?}",
[INFO] [stdout] 407 | |                     t.shape(),
[INFO] [stdout] 408 | |                     first.shape()
[INFO] [stdout] 409 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:456:13
[INFO] [stdout]     |
[INFO] [stdout] 456 |             crate::bail!("slice_set: cannot use when self and src share their storage");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:461:13
[INFO] [stdout]     |
[INFO] [stdout] 461 | /             crate::bail!(
[INFO] [stdout] 462 | |                 "slice_set: rank mismatch, self has rank {} but src has rank {}",
[INFO] [stdout] 463 | |                 self.rank(),
[INFO] [stdout] 464 | |                 src.rank()
[INFO] [stdout] 465 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:472:21
[INFO] [stdout]     |
[INFO] [stdout] 472 | /                     crate::bail!(
[INFO] [stdout] 473 | |                         "slice_set: shape mismatch on target dim {dim}, dst size: {v1}, src size: {v2} + offset {offset}"
[INFO] [stdout] 474 | |                     );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 crate::bail!(
[INFO] [stdout] 478 | |                     "slice_set: shape mismatch on dim {dim_idx}, self has {v1} but src has {v2}"
[INFO] [stdout] 479 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:508:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |             crate::bail!("rank mismatch in slice_assign {} <> {}", self.rank(), src.rank())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |                 crate::bail!("shape mismatch on target dim, dst: {v1}, src: {v2} + {offset}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:515:17
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 crate::bail!("shape mismatch on dim {dim_idx}, {v1} <> {v2}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:596:13
[INFO] [stdout]     |
[INFO] [stdout] 596 |             crate::bail!("cannot use scatter_set when self and src share their storage")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             crate::bail!("flatten incorrect dim ordering {d1} {d2}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 | /                 crate::bail!(
[INFO] [stdout] 196 | |                     "cannot flatten, block is not contiguous {dims:?} {strides:?} {d1} {d2}"
[INFO] [stdout] 197 | |                 )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             crate::bail!("expand incorrect number of elements in target {s:?} {}", dims[d])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 | /             crate::bail!(
[INFO] [stdout] 239 | |                 "expand: target shape {:?} has different rank than source shape {:?}",
[INFO] [stdout] 240 | |                 shape,
[INFO] [stdout] 241 | |                 self.shape
[INFO] [stdout] 242 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:248:21
[INFO] [stdout]     |
[INFO] [stdout] 248 |                     crate::bail!("expand: cannot expand dim {i} from {slf_dim} to {tgt_dim}",)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |             crate::bail!("out-of-bounds in narrow on {dim}, {start} + {len} > {}", dims[dim])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 | /             crate::bail!(
[INFO] [stdout] 345 | |                 "broadcast_as: target rank {target_rank} is less than source rank {src_rank}"
[INFO] [stdout] 346 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:362:21
[INFO] [stdout]     |
[INFO] [stdout] 362 | /                     crate::bail!(
[INFO] [stdout] 363 | |                         "broadcast_as: cannot broadcast dim {i} from {} to {}",
[INFO] [stdout] 364 | |                         src_dims[src_i],
[INFO] [stdout] 365 | |                         target_dims[i]
[INFO] [stdout] 366 | |                     )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 | /             crate::bail!(
[INFO] [stdout] 385 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 386 | |                 self.dims(),
[INFO] [stdout] 387 | |                 idxs
[INFO] [stdout] 388 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 | /             crate::bail!(
[INFO] [stdout] 411 | |                 "reshape: cannot reshape tensor of {} elements to shape {:?} ({} elements)",
[INFO] [stdout] 412 | |                 self.elem_count(),
[INFO] [stdout] 413 | |                 shape,
[INFO] [stdout] 414 | |                 shape.elem_count()
[INFO] [stdout] 415 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `xn` (lib) due to 184 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/backend.rs:389:9
[INFO] [stdout]     |
[INFO] [stdout] 389 |         crate::bail!("sdpa_decode is not implemented for this backend")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:618:23
[INFO] [stdout]     |
[INFO] [stdout] 618 |             Err(e) => crate::bail!("failed to create normal distribution for randn: {e}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |             crate::bail!("rope unexpected size for dst {} {b} {h} {t} {d}", dst.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:659:13
[INFO] [stdout]     |
[INFO] [stdout] 659 |             crate::bail!("rope unexpected size for src {} {b} {h} {t} {d}", src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:699:13
[INFO] [stdout]     |
[INFO] [stdout] 699 |             crate::bail!("rope-i unexpected size for dst {} {b} {h} {t} {d}", dst.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/cpu_backend.rs:702:13
[INFO] [stdout]     |
[INFO] [stdout] 702 |             crate::bail!("rope-i unexpected size for src {} {b} {h} {t} {d}", src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/cpu_backend.rs:1355:13
[INFO] [stdout]      |
[INFO] [stdout] 1355 |             crate::bail!("sdpa_decode: head dim {d} exceeds {CPU_SDPA_MAX_HEAD_DIM}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/cpu_backend.rs:1358:13
[INFO] [stdout]      |
[INFO] [stdout] 1358 |             crate::bail!("sdpa_decode: empty kv")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/dtype.rs:55:18
[INFO] [stdout]     |
[INFO] [stdout]  55 |             _ => crate::bail!("Invalid DTypeQ: {s}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             crate::bail!("{op}: cannot use when dst and src share their storage");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |             crate::bail!("rand_uniform: upper bound ({up}) must be >= lower bound ({lo})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:351:18
[INFO] [stdout]     |
[INFO] [stdout] 351 |               _ => crate::bail!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 352 | |                 "apply_causality_mask expects 3D or 4D tensor, got shape {:?}",
[INFO] [stdout] 353 | |                 self.shape()
[INFO] [stdout] 354 | |             ),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |             crate::bail!("rms_norm_ eps must be positive");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |             crate::bail!("layer_norm_ eps must be positive");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 | /             crate::bail!(
[INFO] [stdout] 427 | |                 "matmul requires at least 2D tensors, got lhs {:?}, rhs {:?}",
[INFO] [stdout] 428 | |                 lhs.shape(),
[INFO] [stdout] 429 | |                 rhs.shape()
[INFO] [stdout] 430 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 | /             crate::bail!(
[INFO] [stdout] 446 | |                 "matmul inner dimension mismatch: lhs {:?}, rhs {:?}, rhs_t={rhs_t}",
[INFO] [stdout] 447 | |                 lhs.shape(),
[INFO] [stdout] 448 | |                 rhs.shape()
[INFO] [stdout] 449 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:460:13
[INFO] [stdout]     |
[INFO] [stdout] 460 | /             crate::bail!(
[INFO] [stdout] 461 | |                 "matmul batch dimension mismatch: lhs {:?}, rhs {:?}",
[INFO] [stdout] 462 | |                 lhs.shape(),
[INFO] [stdout] 463 | |                 rhs.shape()
[INFO] [stdout] 464 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:475:13
[INFO] [stdout]     |
[INFO] [stdout] 475 | /             crate::bail!(
[INFO] [stdout] 476 | |                 "matmul dst is too small, dst {} < {dst_elems}, lhs {:?} rhs {:?}",
[INFO] [stdout] 477 | |                 storage_len,
[INFO] [stdout] 478 | |                 lhs.shape(),
[INFO] [stdout] 479 | |                 rhs.shape()
[INFO] [stdout] 480 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:579:13
[INFO] [stdout]     |
[INFO] [stdout] 579 | /             crate::bail!(
[INFO] [stdout] 580 | |                 "rope_ requires even d dimension, got d={d}, {:?} {:?}",
[INFO] [stdout] 581 | |                 self.shape(),
[INFO] [stdout] 582 | |                 cos.shape()
[INFO] [stdout] 583 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 | /             crate::bail!(
[INFO] [stdout] 587 | |                 "rope_ position out of range, pos={pos} + t={t} > max_pos={max_pos}, {:?} {:?}",
[INFO] [stdout] 588 | |                 self.shape(),
[INFO] [stdout] 589 | |                 cos.shape()
[INFO] [stdout] 590 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:610:13
[INFO] [stdout]     |
[INFO] [stdout] 610 | /             crate::bail!(
[INFO] [stdout] 611 | |                 "rope_i_ requires even d dimension, got d={d}, {:?} {:?}",
[INFO] [stdout] 612 | |                 self.shape(),
[INFO] [stdout] 613 | |                 cos.shape()
[INFO] [stdout] 614 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:617:13
[INFO] [stdout]     |
[INFO] [stdout] 617 | /             crate::bail!(
[INFO] [stdout] 618 | |                 "rope_i_ position out of range, pos={pos} + t={t} > max_pos={max_pos}, {:?} {:?}",
[INFO] [stdout] 619 | |                 self.shape(),
[INFO] [stdout] 620 | |                 cos.shape()
[INFO] [stdout] 621 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:712:13
[INFO] [stdout]     |
[INFO] [stdout] 712 | /             crate::bail!(
[INFO] [stdout] 713 | |                 "conv1d input must be 3D (batch, in_channels, length), got {:?}",
[INFO] [stdout] 714 | |                 src.shape()
[INFO] [stdout] 715 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:718:13
[INFO] [stdout]     |
[INFO] [stdout] 718 | /             crate::bail!(
[INFO] [stdout] 719 | |                 "conv1d kernel must be 3D (out_channels, in_channels/groups, kernel_size), got {:?}",
[INFO] [stdout] 720 | |                 kernel.shape()
[INFO] [stdout] 721 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:735:13
[INFO] [stdout]     |
[INFO] [stdout] 735 | /             crate::bail!(
[INFO] [stdout] 736 | |                 "conv1d output shape mismatch: expected {:?}, got {:?}",
[INFO] [stdout] 737 | |                 [batch, out_channels, out_length],
[INFO] [stdout] 738 | |                 dst_dims
[INFO] [stdout] 739 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:781:13
[INFO] [stdout]     |
[INFO] [stdout] 781 | /             crate::bail!(
[INFO] [stdout] 782 | |                 "conv_transpose1d input must be 3D (batch, in_channels, length), got {:?}",
[INFO] [stdout] 783 | |                 src.shape()
[INFO] [stdout] 784 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:787:13
[INFO] [stdout]     |
[INFO] [stdout] 787 | /             crate::bail!(
[INFO] [stdout] 788 | |                 "conv_transpose1d kernel must be 3D (in_channels, out_channels/groups, kernel_size), got {:?}",
[INFO] [stdout] 789 | |                 kernel.shape()
[INFO] [stdout] 790 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 | /             crate::bail!(
[INFO] [stdout] 806 | |                 "conv_transpose1d output shape mismatch: expected {:?}, got {:?}",
[INFO] [stdout] 807 | |                 [batch, out_channels, out_length],
[INFO] [stdout] 808 | |                 dst_dims
[INFO] [stdout] 809 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:861:13
[INFO] [stdout]     |
[INFO] [stdout] 861 |             crate::bail!("broadcast mismatch: lhs dim {i} is {lhs_dim} but output is {out_dim}",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:864:13
[INFO] [stdout]     |
[INFO] [stdout] 864 |             crate::bail!("broadcast mismatch: rhs dim {i} is {rhs_dim} but output is {out_dim}",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:921:17
[INFO] [stdout]     |
[INFO] [stdout] 921 |                 crate::bail!("inconsistent batch size in rope {b_sz} {cs_dims:?}",)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/inplace_ops.rs:925:14
[INFO] [stdout]     |
[INFO] [stdout] 925 |         _ => crate::bail!("cos/sin has to be 2D or 3D in rope {b_sz} {cs_dims:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/kv_cache.rs:44:13
[INFO] [stdout]     |
[INFO] [stdout]  44 | /             crate::bail!(
[INFO] [stdout]  45 | |                 "kv-cache: above max-seq-len {}+{seq_len}>{}",
[INFO] [stdout]  46 | |                 self.current_seq_len,
[INFO] [stdout]  47 | |                 self.max_seq_len
[INFO] [stdout]  48 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |             crate::bail!("unpad1d: tensor len {len} is too low for unpad {unpad_l} + {unpad_r}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:665:13
[INFO] [stdout]     |
[INFO] [stdout] 665 |             crate::bail!("LSTM in SeaNet is not supported");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/models/mimi.rs:868:13
[INFO] [stdout]     |
[INFO] [stdout] 868 |             crate::bail!("LSTM in SeaNet is not supported");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/models/mimi.rs:1729:13
[INFO] [stdout]      |
[INFO] [stdout] 1729 |             crate::bail!("empty layers in ResidualVectorQuantization");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         None => crate::bail!("tensor '{name}' not found"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | /         crate::bail!(
[INFO] [stdout] 138 | |             "shape mismatch for tensor '{name}': expected {shape:?}, found {:?}",
[INFO] [stdout] 139 | |             td.shape
[INFO] [stdout] 140 | |         );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/nn/var_builder.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |             crate::bail!("{} unused tensors {unused:?}", unused.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:19:13
[INFO] [stdout]     |
[INFO] [stdout]  19 |             crate::bail!("cannot broadcast between shapes {lhs:?} and {rhs:?}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             crate::bail!("flatten: start_dim {start_dim} > end_dim {end_dim}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             crate::bail!("t requires at least 2 dimensions");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:304:13
[INFO] [stdout]     |
[INFO] [stdout] 304 |             crate::bail!("sdpa_decode expects a (b, 1, h, d) query, got {:?}", self.shape)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:310:17
[INFO] [stdout]     |
[INFO] [stdout] 310 | /                 crate::bail!(
[INFO] [stdout] 311 | |                     "sdpa_decode: {name} shape {:?} incompatible with q {:?}",
[INFO] [stdout] 312 | |                     t.shape(),
[INFO] [stdout] 313 | |                     self.shape
[INFO] [stdout] 314 | |                 )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             crate::bail!("sdpa_decode: k has {kv} positions but v has {}", v.dims()[1])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 | /             crate::bail!(
[INFO] [stdout] 392 | |                 "sdpa_decode: mask {:?} must be {kv} terms, or {b} rows of {kv} shaped \
[INFO] [stdout] 393 | |                  ({b}, {kv}) or ({b}, 1, 1, {kv}); a mask per head is not supported",
[INFO] [stdout] 394 | |                 mask.shape
[INFO] [stdout] 395 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |             crate::bail!("in_channels ({in_channels}) must be divisible by groups ({groups})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:457:13
[INFO] [stdout]     |
[INFO] [stdout] 457 |             crate::bail!("out_channels ({out_channels}) must be divisible by groups ({groups})",);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:460:13
[INFO] [stdout]     |
[INFO] [stdout] 460 | /             crate::bail!(
[INFO] [stdout] 461 | |                 "kernel in_channels/groups mismatch: expected {}, got {kernel_in_channels}",
[INFO] [stdout] 462 | |                 in_channels / groups,
[INFO] [stdout] 463 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 crate::bail!(
[INFO] [stdout] 478 | |                     "bias shape mismatch: expected [{out_channels}], got {:?}",
[INFO] [stdout] 479 | |                     bias.shape()
[INFO] [stdout] 480 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:513:13
[INFO] [stdout]     |
[INFO] [stdout] 513 |             crate::bail!("in_channels ({in_channels}) must be divisible by groups ({groups})");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 | /             crate::bail!(
[INFO] [stdout] 517 | |                 "kernel in_channels mismatch: expected {in_channels}, got {k_in_channels}",
[INFO] [stdout] 518 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:533:17
[INFO] [stdout]     |
[INFO] [stdout] 533 | /                 crate::bail!(
[INFO] [stdout] 534 | |                     "bias shape mismatch: expected [{out_channels}], got {:?}",
[INFO] [stdout] 535 | |                     bias.shape()
[INFO] [stdout] 536 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:607:17
[INFO] [stdout]     |
[INFO] [stdout] 607 | /                 crate::bail!(
[INFO] [stdout] 608 | |                     "sum_keepdim: dimension {} out of range for tensor of rank {}",
[INFO] [stdout] 609 | |                     dim,
[INFO] [stdout] 610 | |                     src.rank()
[INFO] [stdout] 611 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/ops.rs:789:13
[INFO] [stdout]     |
[INFO] [stdout] 789 |             crate::bail!("cannot pad_with_same on dimension with size 0");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:27:18
[INFO] [stdout]     |
[INFO] [stdout]  27 |             _ => crate::bail!("unknown magic {value:08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:55:18
[INFO] [stdout]     |
[INFO] [stdout]  55 |             _ => crate::bail!("ggml: unsupported magic/version {magic:?}/{version}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | /         crate::bail!(
[INFO] [stdout] 138 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 139 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:161:14
[INFO] [stdout]     |
[INFO] [stdout] 161 |         _ => crate::bail!("quantized type {ggml_dtype:?} is not supported yet"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |         Err(e) => crate::bail!("Error creating tensor {name}: {e}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/ggml_file.rs:224:21
[INFO] [stdout]     |
[INFO] [stdout] 224 |             None => crate::bail!("cannot find tensor with name '{name}'"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:22:18
[INFO] [stdout]     |
[INFO] [stdout]  22 |             _ => crate::bail!("unknown magic 0x{value:08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:44:18
[INFO] [stdout]     |
[INFO] [stdout]  44 |             _ => crate::bail!("gguf: unsupported magic/version {magic:?}/{version}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:66:13
[INFO] [stdout]     |
[INFO] [stdout]  66 | /             crate::bail!(
[INFO] [stdout]  67 | |                 "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout]  68 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:175:18
[INFO] [stdout]     |
[INFO] [stdout] 175 |             v => crate::bail!("not a u8 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:182:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |             v => crate::bail!("not a i8 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:189:18
[INFO] [stdout]     |
[INFO] [stdout] 189 |             v => crate::bail!("not a u16 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:196:18
[INFO] [stdout]     |
[INFO] [stdout] 196 |             v => crate::bail!("not a i16 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |             v => crate::bail!("not a u32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |             v => crate::bail!("not a i32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:223:18
[INFO] [stdout]     |
[INFO] [stdout] 223 |             v => crate::bail!("not a u64 or upcastable to u64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |             v => crate::bail!("not a i64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |             v => crate::bail!("not a f32 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:244:18
[INFO] [stdout]     |
[INFO] [stdout] 244 |             v => crate::bail!("not a f64 {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:251:18
[INFO] [stdout]     |
[INFO] [stdout] 251 |             v => crate::bail!("not a bool {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:258:18
[INFO] [stdout]     |
[INFO] [stdout] 258 |             v => crate::bail!("not a vec {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:265:18
[INFO] [stdout]     |
[INFO] [stdout] 265 |             v => crate::bail!("not a string {v:?}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:288:22
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 b => crate::bail!("unexpected bool value {b}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         crate::bail!("multiple value-types in the same array {value_type:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:365:18
[INFO] [stdout]     |
[INFO] [stdout] 365 |             v => crate::bail!("unrecognized value-type {v:#08x}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:480:21
[INFO] [stdout]     |
[INFO] [stdout] 480 |             None => crate::bail!("cannot find tensor info for {name}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/gguf_file.rs:530:13
[INFO] [stdout]     |
[INFO] [stdout] 530 | /             crate::bail!(
[INFO] [stdout] 531 | |                 "internal error, unexpected current position {tensor_start_pos} {offset} {pos}"
[INFO] [stdout] 532 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |             crate::bail!("dequantize_row_q4_0: {k} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |             crate::bail!("{k} is not divisible by {}", qk);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |             crate::bail!("vec_dot_q4_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |             crate::bail!("vec_dot_q4_1_q8_1: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |             crate::bail!("vec_dot_q4_1_q8_1: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 382 |             crate::bail!("dequantize_row_q4_1: {k} is not divisible by {QK4_1}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             crate::bail!("vec_dot_q5_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |             crate::bail!("vec_dot_q5_0_q8_0: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |             crate::bail!("size mismatch {k} {} {}", ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 481 |             crate::bail!("dequantize_row_q5_0: {k} is not divisible by {QK5_0}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |             crate::bail!("vec_dot_q5_1_q8_1: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |             crate::bail!("vec_dot_q5_1_q8_1: {n}, nb is not divisible by 2")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), qk,)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             crate::bail!("dequantize_row_q5_1: {k} is not divisible by {QK5_1}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:621:13
[INFO] [stdout]     |
[INFO] [stdout] 621 |             crate::bail!("dequantize_row_q8_0: {k} is not divisible by {QK8_0}");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |             crate::bail!("{k} is not divisible by {}", Self::BLCK_SIZE);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:644:13
[INFO] [stdout]     |
[INFO] [stdout] 644 |             crate::bail!("size mismatch {} {} {}", xs.len(), ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:680:13
[INFO] [stdout]     |
[INFO] [stdout] 680 |             crate::bail!("vec_dot_q8_0_q8_0: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:851:13
[INFO] [stdout]     |
[INFO] [stdout] 851 |             crate::bail!("size mismatch {k} {} {}", ys.len(), Self::BLCK_SIZE)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/k_quants.rs:901:13
[INFO] [stdout]     |
[INFO] [stdout] 901 |             crate::bail!("vec_dot_q2k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1076:13
[INFO] [stdout]      |
[INFO] [stdout] 1076 |             crate::bail!("vec_dot_q3k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1341:13
[INFO] [stdout]      |
[INFO] [stdout] 1341 |             crate::bail!("vec_dot_q4k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1527:13
[INFO] [stdout]      |
[INFO] [stdout] 1527 |             crate::bail!("vec_dot_q5k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1747:13
[INFO] [stdout]      |
[INFO] [stdout] 1747 |             crate::bail!("vec_dot_q6k_q8k: {n} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1805:13
[INFO] [stdout]      |
[INFO] [stdout] 1805 | /             crate::bail!(
[INFO] [stdout] 1806 | |                 "quantize_row_q6k: size mismatch {} {} {}",
[INFO] [stdout] 1807 | |                 xs.len(),
[INFO] [stdout] 1808 | |                 ys.len(),
[INFO] [stdout] 1809 | |                 Self::BLCK_SIZE
[INFO] [stdout] 1810 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1879:13
[INFO] [stdout]      |
[INFO] [stdout] 1879 |             crate::bail!("dequantize_row_q6k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1931:13
[INFO] [stdout]      |
[INFO] [stdout] 1931 |             crate::bail!("vec_dot_q8k_q8k: {n} is not divisible by {qk}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1947:13
[INFO] [stdout]      |
[INFO] [stdout] 1947 |             crate::bail!("quantize_row_q8k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:156:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout]  155 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:1986:13
[INFO] [stdout]      |
[INFO] [stdout] 1986 |             crate::bail!("dequantize_row_q8k: {k} is not divisible by {QK_K}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2007:9
[INFO] [stdout]      |
[INFO] [stdout] 2007 |         crate::bail!("unexpected lhs length {} {mkn:?}", lhs.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2041:13
[INFO] [stdout]      |
[INFO] [stdout] 2041 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2044:13
[INFO] [stdout]      |
[INFO] [stdout] 2044 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2052:13
[INFO] [stdout]      |
[INFO] [stdout] 2052 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2060:13
[INFO] [stdout]      |
[INFO] [stdout] 2060 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2078:13
[INFO] [stdout]      |
[INFO] [stdout] 2078 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2081:13
[INFO] [stdout]      |
[INFO] [stdout] 2081 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2090:13
[INFO] [stdout]      |
[INFO] [stdout] 2090 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2100:13
[INFO] [stdout]      |
[INFO] [stdout] 2100 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2120:13
[INFO] [stdout]      |
[INFO] [stdout] 2120 |             crate::bail!("size mismatch {} < {n}", xs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2123:13
[INFO] [stdout]      |
[INFO] [stdout] 2123 |             crate::bail!("size mismatch {} < {n}", ys.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2132:13
[INFO] [stdout]      |
[INFO] [stdout] 2132 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]     --> xn-core/src/error.rs:162:39
[INFO] [stdout]      |
[INFO] [stdout]  154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: xn-core/src/quantized/k_quants.rs:2143:13
[INFO] [stdout]      |
[INFO] [stdout] 2143 |             crate::bail!("size mismatch {} {}", xs.len(), ys.len());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             crate::bail!("shape [{n}, {k}] cannot be interleaved as q8_0_4x8")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |             crate::bail!("expected {} q8_0 blocks for [{n}, {k}], got {}", n * kb, src.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |             crate::bail!("matmul_t: n mismatch, weights hold {} but got {n}", self.n)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |             crate::bail!("matmul_t: k mismatch, weights hold {} but got {k}", self.kb * QK8_0)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             crate::bail!("matmul_t: expected {} lhs elements, got {}", m * k, lhs.len())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/repack.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             crate::bail!("matmul_t: dst too small ({} < {})", dst.len(), m * n)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/utils.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout]  22 | /         crate::bail!(
[INFO] [stdout]  23 | |             "quantize {dtype:?}: expected {expected_blocks} blocks but only {actual_blocks} were provided!"
[INFO] [stdout]  24 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/utils.rs:44:9
[INFO] [stdout]     |
[INFO] [stdout]  44 | /         crate::bail!(
[INFO] [stdout]  45 | |             "dequantize {dtype:?}: ys (len = {actual_output_len}) does not match the expected length of {expected_output_len}!"
[INFO] [stdout]  46 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |             _ => crate::bail!("unknown dtype for tensor {u}"),
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |         crate::bail!("scalar tensor cannot be quantized {shape:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 | /         crate::bail!(
[INFO] [stdout] 269 | |             "quantized tensor must have their last dim divisible by block size {shape:?} {}",
[INFO] [stdout] 270 | |             block_size
[INFO] [stdout] 271 | |         )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             crate::bail!("tensor size ({shape:?}) is not divisible by block size {}", block_size)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |             crate::bail!("input tensor has only one dimension {src_shape:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             crate::bail!("input tensor {src_shape:?} incompatible with {:?}", weight.shape)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:444:1
[INFO] [stdout]     |
[INFO] [stdout] 444 |   backend_q_f32!(Q40F32, GgmlDType::Q4_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:445:1
[INFO] [stdout]     |
[INFO] [stdout] 445 |   backend_q_f32!(Q41F32, GgmlDType::Q4_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:446:1
[INFO] [stdout]     |
[INFO] [stdout] 446 |   backend_q_f32!(Q50F32, GgmlDType::Q5_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 |   backend_q_f32!(Q51F32, GgmlDType::Q5_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:448:1
[INFO] [stdout]     |
[INFO] [stdout] 448 |   backend_q_f32!(Q80F32, GgmlDType::Q8_0);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:449:1
[INFO] [stdout]     |
[INFO] [stdout] 449 |   backend_q_f32!(Q81F32, GgmlDType::Q8_1);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:450:1
[INFO] [stdout]     |
[INFO] [stdout] 450 |   backend_q_f32!(Q2kF32, GgmlDType::Q2K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:451:1
[INFO] [stdout]     |
[INFO] [stdout] 451 |   backend_q_f32!(Q3kF32, GgmlDType::Q3K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:452:1
[INFO] [stdout]     |
[INFO] [stdout] 452 |   backend_q_f32!(Q4kF32, GgmlDType::Q4K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:453:1
[INFO] [stdout]     |
[INFO] [stdout] 453 |   backend_q_f32!(Q5kF32, GgmlDType::Q5K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 |   backend_q_f32!(Q6kF32, GgmlDType::Q6K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | / macro_rules! bail {
[INFO] [stdout] 155 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 157 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 | |     };
[INFO] [stdout] 164 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `backend_q_f32`
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/quantized/mod.rs:455:1
[INFO] [stdout]     |
[INFO] [stdout] 455 |   backend_q_f32!(Q8kF32, GgmlDType::Q8K);
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/shape.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         bail!("cannot reshape tensor of {el_count} elements to {s:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/shape.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         bail!("cannot reshape tensor with {el_count} elements to {s:?}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/streaming.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             crate::bail!("streaming module should only be used with constant steps")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 | /             crate::bail!(
[INFO] [stdout] 140 | |                 "to_scalar can only be called on a scalar (rank 0) tensor, but got shape {:?}",
[INFO] [stdout] 141 | |                 self.shape()
[INFO] [stdout] 142 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 | /             crate::bail!(
[INFO] [stdout] 152 | |                 "to_vec1 can only be called on a tensor of shape [_], but got shape {:?}",
[INFO] [stdout] 153 | |                 self.shape
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 | /             crate::bail!(
[INFO] [stdout] 214 | |                 "reshape: cannot reshape tensor of {} elements to shape {:?} ({} elements)",
[INFO] [stdout] 215 | |                 self.elem_count(),
[INFO] [stdout] 216 | |                 shape,
[INFO] [stdout] 217 | |                 shape.elem_count()
[INFO] [stdout] 218 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 | /             crate::bail!(
[INFO] [stdout] 234 | |                 "squeeze: cannot squeeze dimension {dim} with size {} (expected size 1)",
[INFO] [stdout] 235 | |                 dims[dim]
[INFO] [stdout] 236 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 | /             crate::bail!(
[INFO] [stdout] 310 | |                 "from_vec: data length {} does not match shape {:?} with {} elements",
[INFO] [stdout] 311 | |                 data.len(),
[INFO] [stdout] 312 | |                 shape,
[INFO] [stdout] 313 | |                 shape.elem_count()
[INFO] [stdout] 314 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             crate::bail!("cat requires at least one tensor");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |                 crate::bail!("cat: tensor {i} has rank {} but expected {rank}", t.rank());
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout] 342 | /                     crate::bail!(
[INFO] [stdout] 343 | |                         "cat: tensor {i} has shape {:?} but expected dimension {d} to be {}",
[INFO] [stdout] 344 | |                         t.shape(),
[INFO] [stdout] 345 | |                         first.dims()[d]
[INFO] [stdout] 346 | |                     );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |             crate::bail!("stack requires at least one tensor");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:405:17
[INFO] [stdout]     |
[INFO] [stdout] 405 | /                 crate::bail!(
[INFO] [stdout] 406 | |                     "stack: tensor {i} has shape {:?} but expected {:?}",
[INFO] [stdout] 407 | |                     t.shape(),
[INFO] [stdout] 408 | |                     first.shape()
[INFO] [stdout] 409 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:456:13
[INFO] [stdout]     |
[INFO] [stdout] 456 |             crate::bail!("slice_set: cannot use when self and src share their storage");
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:461:13
[INFO] [stdout]     |
[INFO] [stdout] 461 | /             crate::bail!(
[INFO] [stdout] 462 | |                 "slice_set: rank mismatch, self has rank {} but src has rank {}",
[INFO] [stdout] 463 | |                 self.rank(),
[INFO] [stdout] 464 | |                 src.rank()
[INFO] [stdout] 465 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:472:21
[INFO] [stdout]     |
[INFO] [stdout] 472 | /                     crate::bail!(
[INFO] [stdout] 473 | |                         "slice_set: shape mismatch on target dim {dim}, dst size: {v1}, src size: {v2} + offset {offset}"
[INFO] [stdout] 474 | |                     );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 crate::bail!(
[INFO] [stdout] 478 | |                     "slice_set: shape mismatch on dim {dim_idx}, self has {v1} but src has {v2}"
[INFO] [stdout] 479 | |                 );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:508:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |             crate::bail!("rank mismatch in slice_assign {} <> {}", self.rank(), src.rank())
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |                 crate::bail!("shape mismatch on target dim, dst: {v1}, src: {v2} + {offset}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:515:17
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 crate::bail!("shape mismatch on dim {dim_idx}, {v1} <> {v2}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor.rs:596:13
[INFO] [stdout]     |
[INFO] [stdout] 596 |             crate::bail!("cannot use scatter_set when self and src share their storage")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             crate::bail!("flatten incorrect dim ordering {d1} {d2}")
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 | /                 crate::bail!(
[INFO] [stdout] 196 | |                     "cannot flatten, block is not contiguous {dims:?} {strides:?} {d1} {d2}"
[INFO] [stdout] 197 | |                 )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             crate::bail!("expand incorrect number of elements in target {s:?} {}", dims[d])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 | /             crate::bail!(
[INFO] [stdout] 239 | |                 "expand: target shape {:?} has different rank than source shape {:?}",
[INFO] [stdout] 240 | |                 shape,
[INFO] [stdout] 241 | |                 self.shape
[INFO] [stdout] 242 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] 155 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:248:21
[INFO] [stdout]     |
[INFO] [stdout] 248 |                     crate::bail!("expand: cannot expand dim {i} from {slf_dim} to {tgt_dim}",)
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |             crate::bail!("out-of-bounds in narrow on {dim}, {start} + {len} > {}", dims[dim])
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] 155 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 156 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 | /             crate::bail!(
[INFO] [stdout] 345 | |                 "broadcast_as: target rank {target_rank} is less than source rank {src_rank}"
[INFO] [stdout] 346 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:362:21
[INFO] [stdout]     |
[INFO] [stdout] 362 | /                     crate::bail!(
[INFO] [stdout] 363 | |                         "broadcast_as: cannot broadcast dim {i} from {} to {}",
[INFO] [stdout] 364 | |                         src_dims[src_i],
[INFO] [stdout] 365 | |                         target_dims[i]
[INFO] [stdout] 366 | |                     )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 | /             crate::bail!(
[INFO] [stdout] 385 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 386 | |                 self.dims(),
[INFO] [stdout] 387 | |                 idxs
[INFO] [stdout] 388 | |             )
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `String`
[INFO] [stdout]    --> xn-core/src/error.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 154 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 162 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: xn-core/src/tensor_view.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 | /             crate::bail!(
[INFO] [stdout] 411 | |                 "reshape: cannot reshape tensor of {} elements to shape {:?} ({} elements)",
[INFO] [stdout] 412 | |                 self.elem_count(),
[INFO] [stdout] 413 | |                 shape,
[INFO] [stdout] 414 | |                 shape.elem_count()
[INFO] [stdout] 415 | |             );
[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 `<String as Into<String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `xn` (lib test) due to 184 previous errors
[INFO] running `Command { std: "docker" "inspect" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3", kill_on_drop: false }`
[INFO] [stdout] ef1aede38b9273691a48064f970216d275b4e21a38253e6b5e5cbe9408c284b3
