[INFO] fetching crate hanzo-ml 0.11.113...
[INFO] checking hanzo-ml-0.11.113 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate hanzo-ml 0.11.113 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate hanzo-ml 0.11.113
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate hanzo-ml 0.11.113
[INFO] tweaked toml for crates.io crate hanzo-ml 0.11.113 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate hanzo-ml 0.11.113 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 crates.io crate hanzo-ml 0.11.113 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-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee
[INFO] running `Command { std: "docker" "start" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee", 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" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee", 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" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking either v1.19.0
[INFO] [stderr]    Compiling pulp v0.22.3
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.1
[INFO] [stderr]    Compiling dyn-stack-macros v0.1.3
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling cc v1.8.0
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling monostate-impl v0.1.18
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.3
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]     Checking monostate v0.1.18
[INFO] [stderr]     Checking typed-path v0.12.3
[INFO] [stderr]     Checking daachorse v3.0.3
[INFO] [stderr]     Checking macro_rules_attribute v0.2.3
[INFO] [stderr]    Compiling hanzo-ml v0.11.113 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking criterion-plot v0.8.2
[INFO] [stderr]     Checking zip v8.6.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking fancy-regex v0.17.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking rayon-cond v0.4.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]    Compiling bytemuck_derive v1.12.1
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling yoke-derive v0.8.4
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking dyn-stack v0.13.2
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking float8 v0.7.0
[INFO] [stderr]     Checking thiserror v2.0.21
[INFO] [stderr]     Checking clap v4.6.7
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking compact_str v0.9.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking dary_heap v0.3.9
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking safetensors v0.8.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking tokenizers v0.23.2
[INFO] [stderr]     Checking criterion v0.8.2
[INFO] [stderr]     Checking gemm-common v0.19.0
[INFO] [stderr]     Checking gemm-f32 v0.19.0
[INFO] [stderr]     Checking gemm-f64 v0.19.0
[INFO] [stderr]     Checking gemm-c32 v0.19.0
[INFO] [stderr]     Checking gemm-c64 v0.19.0
[INFO] [stderr]     Checking gemm-f16 v0.19.0
[INFO] [stderr]     Checking gemm v0.19.0
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |         f64::INFINITY
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 |         f64::NEG_INFINITY
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         f64::INFINITY
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         f64::NEG_INFINITY
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |         f64::INFINITY
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 |         f64::NEG_INFINITY
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         f64::INFINITY
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/cpu/erf.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         f64::NEG_INFINITY
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...                   crate::bail!("backward not supported for avgpool2d if ksize {kernel_size:?} != stride {stride:?}")
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::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: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:345:29
[INFO] [stdout]     |
[INFO] [stdout] 345 | ...                   crate::bail!("backward not supported for maxpool2d if ksize {kernel_size:?} != stride {stride:?}")
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:361:29
[INFO] [stdout]     |
[INFO] [stdout] 361 | ...                   crate::bail!("backward not supported for non integer upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:377:29
[INFO] [stdout]     |
[INFO] [stdout] 377 | ...                   crate::bail!("backward not supported for non integer upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:383:29
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...                   crate::bail!("backward not supported for non uniform upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:392:25
[INFO] [stdout]     |
[INFO] [stdout] 392 |                         crate::bail!("backward not supported for upsample_bilinear2d")
[INFO] [stdout]     |                         -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |             crate::bail!("in_channel mismatch between input ({c_in}) and kernel ({c_in_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             crate::bail!("in_channel {c_in} is not divisible by the number of 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 | /             crate::bail!(
[INFO] [stdout] 313 | |                 "in_channel mismatch between input ({c_in}, groups {groups}) and kernel ({c_in_k})"
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:355:13
[INFO] [stdout]     |
[INFO] [stdout] 355 |             crate::bail!("in_channel mismatch between input ({c_in}) and kernel ({c_in_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1759:30
[INFO] [stdout]      |
[INFO] [stdout] 1759 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1770:30
[INFO] [stdout]      |
[INFO] [stdout] 1770 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1781:30
[INFO] [stdout]      |
[INFO] [stdout] 1781 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1792:30
[INFO] [stdout]      |
[INFO] [stdout] 1792 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1803:30
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1814:30
[INFO] [stdout]      |
[INFO] [stdout] 1814 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1825:30
[INFO] [stdout]      |
[INFO] [stdout] 1825 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1836:30
[INFO] [stdout]      |
[INFO] [stdout] 1836 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1847:30
[INFO] [stdout]      |
[INFO] [stdout] 1847 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1858:30
[INFO] [stdout]      |
[INFO] [stdout] 1858 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1869:30
[INFO] [stdout]      |
[INFO] [stdout] 1869 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1880:30
[INFO] [stdout]      |
[INFO] [stdout] 1880 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1891:30
[INFO] [stdout]      |
[INFO] [stdout] 1891 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1902:30
[INFO] [stdout]      |
[INFO] [stdout] 1902 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout]  288 |       ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:2887:17
[INFO] [stdout]      |
[INFO] [stdout] 2887 | /                 crate::bail!(
[INFO] [stdout] 2888 | |                     "convtr1d: the second argument (kernel) has to be contiguous {kernel_l:?}"
[INFO] [stdout] 2889 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:2892:17
[INFO] [stdout]      |
[INFO] [stdout] 2892 | /                 crate::bail!(
[INFO] [stdout] 2893 | |                     "convtr1d: shape mismatch on c_in {:?} {:?}",
[INFO] [stdout] 2894 | |                     l.shape(),
[INFO] [stdout] 2895 | |                     kernel_l.shape()
[INFO] [stdout] 2896 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3063:17
[INFO] [stdout]      |
[INFO] [stdout] 3063 |                 crate::bail!("matmul dtype mismatch")
[INFO] [stdout]      |                 ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3133:17
[INFO] [stdout]      |
[INFO] [stdout] 3133 |                 crate::bail!("const_set not supported for dummy type F6E2M3")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3136:17
[INFO] [stdout]      |
[INFO] [stdout] 3136 |                 crate::bail!("const_set not supported for dummy type F6E3M2")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3139:17
[INFO] [stdout]      |
[INFO] [stdout] 3139 |                 crate::bail!("const_set not supported for dummy type F4")
[INFO] [stdout]      |                 --------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3142:17
[INFO] [stdout]      |
[INFO] [stdout] 3142 |                 crate::bail!("const_set not supported for dummy type F8E8M0")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3144:24
[INFO] [stdout]      |
[INFO] [stdout] 3144 |               (st, s) => crate::bail!(
[INFO] [stdout]      |  ________________________-
[INFO] [stdout] 3145 | |                 "const_set dtype mismatch, expected {:?} but got {:?}",
[INFO] [stdout] 3146 | |                 st.dtype(),
[INFO] [stdout] 3147 | |                 s
[INFO] [stdout] 3148 | |             ),
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3182:9
[INFO] [stdout]      |
[INFO] [stdout] 3182 |         crate::bail!("cannot seed the CPU rng with set_seed")
[INFO] [stdout]      |         ----------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3186:9
[INFO] [stdout]      |
[INFO] [stdout] 3186 |         crate::bail!("cannot get the CPU rng seed with get_current_seed")
[INFO] [stdout]      |         ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:457:9
[INFO] [stdout]     |
[INFO] [stdout] 457 |         bail!("no cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |         bail!("no aliased cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:477:9
[INFO] [stdout]     |
[INFO] [stdout] 477 |         bail!("no cuda implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         bail!("no aliased cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:497:9
[INFO] [stdout]     |
[INFO] [stdout] 497 |         bail!("no metal implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:507:9
[INFO] [stdout]     |
[INFO] [stdout] 507 |         bail!("no aliased metal implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:704:5
[INFO] [stdout]     |
[INFO] [stdout] 704 |       forward_op2!(cpu_fwd, cpu_fwd_aliased, CpuStorage);
[INFO] [stdout]     |       -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:705:5
[INFO] [stdout]     |
[INFO] [stdout] 705 |       forward_op2!(cuda_fwd, cuda_fwd_aliased, CudaStorage);
[INFO] [stdout]     |       ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:706:5
[INFO] [stdout]     |
[INFO] [stdout] 706 |       forward_op2!(metal_fwd, metal_fwd_aliased, MetalStorage);
[INFO] [stdout]     |       -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:825:5
[INFO] [stdout]     |
[INFO] [stdout] 825 |       forward_op3!(cpu_fwd, cpu_fwd_aliased, CpuStorage);
[INFO] [stdout]     |       -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:826:5
[INFO] [stdout]     |
[INFO] [stdout] 826 |       forward_op3!(cuda_fwd, cuda_fwd_aliased, CudaStorage);
[INFO] [stdout]     |       ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:827:5
[INFO] [stdout]     |
[INFO] [stdout] 827 |       forward_op3!(metal_fwd, metal_fwd_aliased, MetalStorage);
[INFO] [stdout]     |       -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:945:13
[INFO] [stdout]     |
[INFO] [stdout] 945 |             bail!("{name}: dst has repeated elements (zero-stride). Can not write in-place")
[INFO] [stdout]     |             -------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:958:28
[INFO] [stdout]     |
[INFO] [stdout] 958 |                   Some(a) => bail!(
[INFO] [stdout]     |  ____________________________-
[INFO] [stdout] 959 | |                     "src {i} shares storage with dst ({rel:?}), which is not supported for the access pattern of `{name}` ({a:?})."
[INFO] [stdout] 960 | |                 ),
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:961:25
[INFO] [stdout]     |
[INFO] [stdout] 961 |                   None => bail!(
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 962 | |                     "src {i} shares storage with dst, and `{name}` does not support aliased operands."
[INFO] [stdout] 963 | |                 ),
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 crate::bail!("two elements have different len {m} {}", v.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 crate::bail!("two elements have different len {m} {}", v.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:194:17
[INFO] [stdout]     |
[INFO] [stdout] 194 |                 crate::bail!("two elements have different shapes {shape:?} {shape0:?}")
[INFO] [stdout]     |                 ----------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:228:17
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 crate::bail!("two elements have different shapes {shape:?} {shape0:?}")
[INFO] [stdout]     |                 ----------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:276:26
[INFO] [stdout]     |
[INFO] [stdout] 276 |             Self::Cpu => crate::bail!("expected a cuda device, got cpu"),
[INFO] [stdout]     |                          ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:277:31
[INFO] [stdout]     |
[INFO] [stdout] 277 |             Self::Metal(_) => crate::bail!("expected a cuda device, got Metal"),
[INFO] [stdout]     |                               ------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 |             Self::Cuda(_) => crate::bail!("expected a metal device, got cuda"),
[INFO] [stdout]     |                              ------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:290:26
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Self::Cpu => crate::bail!("expected a metal device, got cpu"),
[INFO] [stdout]     |                          ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | /         crate::bail!(
[INFO] [stdout] 101 | |             "fattn_decode: k last dim must be {HEAD_DIM}, got {:?}",
[INFO] [stdout] 102 | |             k.dims()
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         crate::bail!(
[INFO] [stdout] 107 | |             "fattn_decode: k {:?} and v {:?} must have equal shape",
[INFO] [stdout] 108 | |             k.dims(),
[INFO] [stdout] 109 | |             v.dims()
[INFO] [stdout] 110 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |           other => crate::bail!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 117 | |             "fattn_decode: q must be [n_head, 512] or [n_head, q_len, 512], got {other:?}"
[INFO] [stdout] 118 | |         ),
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:123:18
[INFO] [stdout]     |
[INFO] [stdout] 123 |         other => crate::bail!("fattn_decode: k rank must be 2 or 3, got {other:?}"),
[INFO] [stdout]     |                  ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | /         crate::bail!(
[INFO] [stdout] 127 | |             "fattn_decode: n_head {n_head} must be a nonzero multiple of n_kv_head {n_kv_head}"
[INFO] [stdout] 128 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         crate::bail!("fattn_decode: q_len {q_len} must be in 1..=8");
[INFO] [stdout]     |         ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         crate::bail!("fattn_decode: kv_len {kv_len} must be >= q_len {q_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 | /                 crate::bail!(
[INFO] [stdout] 160 | |                     "fattn_decode: sinks must have {n_head} elems, got {}",
[INFO] [stdout] 161 | |                     s.elem_count()
[INFO] [stdout] 162 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 |         _ => crate::bail!("fattn_decode_f32_hd512: unsupported device"),
[INFO] [stdout]     |              ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hc_sinkhorn.rs:82:21
[INFO] [stdout]     |
[INFO] [stdout]  82 |             None => crate::bail!("hc_sinkhorn requires a contiguous input"),
[INFO] [stdout]     |                     ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hc_sinkhorn.rs:86:18
[INFO] [stdout]     |
[INFO] [stdout]  86 |             _ => crate::bail!("hc_sinkhorn: f32 only"),
[INFO] [stdout]     |                  ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/indexer.rs:51:25
[INFO] [stdout]     |
[INFO] [stdout]  51 |                         crate::bail!("multi-dimensional tensor indexing 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...                   crate::bail!("backward not supported for avgpool2d if ksize {kernel_size:?} != stride {stride:?}")
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::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: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/indexer.rs:57:42
[INFO] [stdout]     |
[INFO] [stdout]  57 |                 TensorIndexer::Err(e) => crate::bail!("indexing error {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/layout.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 264 | /             crate::bail!(
[INFO] [stdout] 265 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 266 | |                 self.dims(),
[INFO] [stdout] 267 | |                 idxs
[INFO] [stdout] 268 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             bail!("bitdelta: bad magic {magic:?}, not a .bitdelta file");
[INFO] [stdout]     |             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:345:29
[INFO] [stdout]     |
[INFO] [stdout] 345 | ...                   crate::bail!("backward not supported for maxpool2d if ksize {kernel_size:?} != stride {stride:?}")
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             bail!("bitdelta: unsupported version {version} (expected {BITDELTA_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 | /                 bail!(
[INFO] [stdout] 194 | |                     "bitdelta: tensor '{name}' shape {} needs {expected} words but file has {words_len}",
[INFO] [stdout] 195 | |                     fmt_shape(&shape)
[INFO] [stdout] 196 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:361:29
[INFO] [stdout]     |
[INFO] [stdout] 361 | ...                   crate::bail!("backward not supported for non integer upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 | /             bail!(
[INFO] [stdout] 243 | |                 "bitdelta encode: tensor '{name}' in {} is absent from base {}",
[INFO] [stdout] 244 | |                 finetuned.display(),
[INFO] [stdout] 245 | |                 base.display()
[INFO] [stdout] 246 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 | /             bail!(
[INFO] [stdout] 250 | |                 "bitdelta encode: tensor '{name}' shape mismatch: base {} has {} but {} has {}",
[INFO] [stdout] 251 | |                 base.display(),
[INFO] [stdout] 252 | |                 fmt_shape(base_t.dims()),
[INFO] [stdout] 253 | |                 finetuned.display(),
[INFO] [stdout] 254 | |                 fmt_shape(ft.dims())
[INFO] [stdout] 255 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 | /             bail!(
[INFO] [stdout] 302 | |                 "bitdelta decode: tensor '{}' is absent from base {}",
[INFO] [stdout] 303 | |                 meta.name,
[INFO] [stdout] 304 | |                 base.display()
[INFO] [stdout] 305 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 | /             bail!(
[INFO] [stdout] 309 | |                 "bitdelta decode: tensor '{}' shape mismatch: base {} has {} but delta has {}",
[INFO] [stdout] 310 | |                 meta.name,
[INFO] [stdout] 311 | |                 base.display(),
[INFO] [stdout] 312 | |                 fmt_shape(base_t.dims()),
[INFO] [stdout] 313 | |                 fmt_shape(&meta.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:15:9
[INFO] [stdout]     |
[INFO] [stdout]  15 |         bail!("soup: no models provided");
[INFO] [stdout]     |         --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:21:17
[INFO] [stdout]     |
[INFO] [stdout]  21 | /                 bail!(
[INFO] [stdout]  22 | |                     "soup: got {} weights for {n} models (lengths must match)",
[INFO] [stdout]  23 | |                     w.len()
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:28:21
[INFO] [stdout]     |
[INFO] [stdout]  28 |                     bail!("soup: weight[{i}] = {wi} is not finite");
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:31:21
[INFO] [stdout]     |
[INFO] [stdout]  31 |                     bail!("soup: weight[{i}] = {wi} is negative");
[INFO] [stdout]     |                     --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:377:29
[INFO] [stdout]     |
[INFO] [stdout] 377 | ...                   crate::bail!("backward not supported for non integer upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:383:29
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...                   crate::bail!("backward not supported for non uniform upscaling factors")
[INFO] [stdout]     |                       ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/backprop.rs:392:25
[INFO] [stdout]     |
[INFO] [stdout] 392 |                         crate::bail!("backward not supported for upsample_bilinear2d")
[INFO] [stdout]     |                         -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |             crate::bail!("in_channel mismatch between input ({c_in}) and kernel ({c_in_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             crate::bail!("in_channel {c_in} is not divisible by the number of 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 | /             crate::bail!(
[INFO] [stdout] 313 | |                 "in_channel mismatch between input ({c_in}, groups {groups}) and kernel ({c_in_k})"
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/conv.rs:355:13
[INFO] [stdout]     |
[INFO] [stdout] 355 |             crate::bail!("in_channel mismatch between input ({c_in}) and kernel ({c_in_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1759:30
[INFO] [stdout]      |
[INFO] [stdout] 1759 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:39:9
[INFO] [stdout]     |
[INFO] [stdout]  39 |         bail!("soup: weights sum to {sum}, must be > 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:86:13
[INFO] [stdout]     |
[INFO] [stdout]  86 | /             bail!(
[INFO] [stdout]  87 | |                 "soup: {} has {} tensors but {} has {} (key sets must match)",
[INFO] [stdout]  88 | |                 path.display(),
[INFO] [stdout]  89 | |                 ckpt.len(),
[INFO] [stdout]  90 | |                 models[0].display(),
[INFO] [stdout]  91 | |                 ref_shapes.len()
[INFO] [stdout]  92 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1770:30
[INFO] [stdout]      |
[INFO] [stdout] 1770 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:96:17
[INFO] [stdout]     |
[INFO] [stdout]  96 | /                 bail!(
[INFO] [stdout]  97 | |                     "soup: tensor '{name}' in {} is absent from {}",
[INFO] [stdout]  98 | |                     path.display(),
[INFO] [stdout]  99 | |                     models[0].display()
[INFO] [stdout] 100 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1781:30
[INFO] [stdout]      |
[INFO] [stdout] 1781 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 | /                 bail!(
[INFO] [stdout] 104 | |                     "soup: tensor '{name}' shape mismatch: {} has {} but {} has {}",
[INFO] [stdout] 105 | |                     models[0].display(),
[INFO] [stdout] 106 | |                     fmt_shape(ref_shape),
[INFO] [stdout] 107 | |                     path.display(),
[INFO] [stdout] 108 | |                     fmt_shape(tensor.dims())
[INFO] [stdout] 109 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         bail!("delta_soup: no fine-tuned models provided");
[INFO] [stdout]     |         -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1792:30
[INFO] [stdout]      |
[INFO] [stdout] 1792 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                 bail!(
[INFO] [stdout] 159 | |                     "delta_soup: tensor '{name}' in {} is absent from base {}",
[INFO] [stdout] 160 | |                     path.display(),
[INFO] [stdout] 161 | |                     base.display()
[INFO] [stdout] 162 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 | /                 bail!(
[INFO] [stdout] 166 | |                     "delta_soup: tensor '{name}' shape mismatch: base {} has {} but {} has {}",
[INFO] [stdout] 167 | |                     base.display(),
[INFO] [stdout] 168 | |                     fmt_shape(base_t.dims()),
[INFO] [stdout] 169 | |                     path.display(),
[INFO] [stdout] 170 | |                     fmt_shape(tensor.dims())
[INFO] [stdout] 171 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1803:30
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1814:30
[INFO] [stdout]      |
[INFO] [stdout] 1814 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1825:30
[INFO] [stdout]      |
[INFO] [stdout] 1825 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/npy.rs:405:21
[INFO] [stdout]     |
[INFO] [stdout] 405 |             None => crate::bail!("cannot find tensor {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1836:30
[INFO] [stdout]      |
[INFO] [stdout] 1836 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 332 |             None => crate::bail!("unexpected empty stack"),
[INFO] [stdout]     |                     -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:385:21
[INFO] [stdout]     |
[INFO] [stdout] 385 |             None => crate::bail!("unexpected empty stack"),
[INFO] [stdout]     |                     -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1847:30
[INFO] [stdout]      |
[INFO] [stdout] 1847 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:392:21
[INFO] [stdout]     |
[INFO] [stdout] 392 |             None => crate::bail!("missing object in memo {id}"),
[INFO] [stdout]     |                     ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:432:17
[INFO] [stdout]     |
[INFO] [stdout] 432 |                 crate::bail!("marker object 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:441:17
[INFO] [stdout]     |
[INFO] [stdout] 441 |                 crate::bail!("unknown op-code {op_code}")
[INFO] [stdout]     |                 ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1858:30
[INFO] [stdout]      |
[INFO] [stdout] 1858 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:521:21
[INFO] [stdout]     |
[INFO] [stdout] 521 |                     crate::bail!("expected a list, got {pylist:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1869:30
[INFO] [stdout]      |
[INFO] [stdout] 1869 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1880:30
[INFO] [stdout]      |
[INFO] [stdout] 1880 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:530:21
[INFO] [stdout]     |
[INFO] [stdout] 530 |                     crate::bail!("expected a list, got {pylist:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1891:30
[INFO] [stdout]      |
[INFO] [stdout] 1891 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:540:21
[INFO] [stdout]     |
[INFO] [stdout] 540 |                     crate::bail!("expected a dict, got {pydict:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:1902:30
[INFO] [stdout]      |
[INFO] [stdout] 1902 |                         _ => crate::bail!("dtype mismatch"),
[INFO] [stdout]      |                              ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout]  288 |       ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:2887:17
[INFO] [stdout]      |
[INFO] [stdout] 2887 | /                 crate::bail!(
[INFO] [stdout] 2888 | |                     "convtr1d: the second argument (kernel) has to be contiguous {kernel_l:?}"
[INFO] [stdout] 2889 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:548:25
[INFO] [stdout]     |
[INFO] [stdout] 548 |                         crate::bail!("setitems: not an even number of objects")
[INFO] [stdout]     |                         ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:2892:17
[INFO] [stdout]      |
[INFO] [stdout] 2892 | /                 crate::bail!(
[INFO] [stdout] 2893 | |                     "convtr1d: shape mismatch on c_in {:?} {:?}",
[INFO] [stdout] 2894 | |                     l.shape(),
[INFO] [stdout] 2895 | |                     kernel_l.shape()
[INFO] [stdout] 2896 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:555:21
[INFO] [stdout]     |
[INFO] [stdout] 555 |                     crate::bail!("expected a dict, got {pydict:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:568:21
[INFO] [stdout]     |
[INFO] [stdout] 568 |                     crate::bail!("setitems: not an even number of objects")
[INFO] [stdout]     |                     ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:644:13
[INFO] [stdout]     |
[INFO] [stdout] 644 |             crate::bail!("unsupported storage type {other}")
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:781:13
[INFO] [stdout]     |
[INFO] [stdout] 781 | /             crate::bail!(
[INFO] [stdout] 782 | |                 "cannot retrieve non-contiguous tensors {:?}",
[INFO] [stdout] 783 | |                 tensor_info.layout
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         crate::bail!("DSV4 Hadamard-128 requires a 128-wide row, got {}", x.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         crate::bail!("DSV4 FP8 KV round-trip: head_dim must be non-zero");
[INFO] [stdout]     |         ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |         crate::bail!("DSV4 FP8 KV round-trip: n_rot {n_rot} exceeds head_dim {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |         crate::bail!("DSV4 FP8 KV round-trip: nope width {n_nope} must be a multiple of 64");
[INFO] [stdout]     |         ------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3063:17
[INFO] [stdout]      |
[INFO] [stdout] 3063 |                 crate::bail!("matmul dtype mismatch")
[INFO] [stdout]      |                 ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3133:17
[INFO] [stdout]      |
[INFO] [stdout] 3133 |                 crate::bail!("const_set not supported for dummy type F6E2M3")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3136:17
[INFO] [stdout]      |
[INFO] [stdout] 3136 |                 crate::bail!("const_set not supported for dummy type F6E3M2")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3139:17
[INFO] [stdout]      |
[INFO] [stdout] 3139 |                 crate::bail!("const_set not supported for dummy type F4")
[INFO] [stdout]      |                 --------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3142:17
[INFO] [stdout]      |
[INFO] [stdout] 3142 |                 crate::bail!("const_set not supported for dummy type F8E8M0")
[INFO] [stdout]      |                 ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3144:24
[INFO] [stdout]      |
[INFO] [stdout] 3144 |               (st, s) => crate::bail!(
[INFO] [stdout]      |  ________________________-
[INFO] [stdout] 3145 | |                 "const_set dtype mismatch, expected {:?} but got {:?}",
[INFO] [stdout] 3146 | |                 st.dtype(),
[INFO] [stdout] 3147 | |                 s
[INFO] [stdout] 3148 | |             ),
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3182:9
[INFO] [stdout]      |
[INFO] [stdout] 3182 |         crate::bail!("cannot seed the CPU rng with set_seed")
[INFO] [stdout]      |         ----------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/cpu_backend/mod.rs:3186:9
[INFO] [stdout]      |
[INFO] [stdout] 3186 |         crate::bail!("cannot get the CPU rng seed with get_current_seed")
[INFO] [stdout]      |         ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:457:9
[INFO] [stdout]     |
[INFO] [stdout] 457 |         bail!("no cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |         bail!("no aliased cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:477:9
[INFO] [stdout]     |
[INFO] [stdout] 477 |         bail!("no cuda implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         bail!("no aliased cpu implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:497:9
[INFO] [stdout]     |
[INFO] [stdout] 497 |         bail!("no metal implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:507:9
[INFO] [stdout]     |
[INFO] [stdout] 507 |         bail!("no aliased metal implementation for {}", self.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 254 | /         crate::bail!(
[INFO] [stdout] 255 | |             "DSV4 FP8 KV round-trip: buffer len {} is not a multiple of head_dim {head_dim}",
[INFO] [stdout] 256 | |             x.len()
[INFO] [stdout] 257 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |         crate::bail!("DSV4 indexer QAT expects 128-wide rows, got {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 | /         crate::bail!(
[INFO] [stdout] 274 | |             "DSV4 indexer QAT: buffer len {} is not a multiple of 128",
[INFO] [stdout] 275 | |             x.len()
[INFO] [stdout] 276 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:299:17
[INFO] [stdout]     |
[INFO] [stdout] 299 |         None => crate::bail!("DSV4 QAT: scalar tensor has no row dimension"),
[INFO] [stdout]     |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | /         crate::bail!(
[INFO] [stdout] 156 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 157 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 |         _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:279:19
[INFO] [stdout]     |
[INFO] [stdout] 279 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:704:5
[INFO] [stdout]     |
[INFO] [stdout] 704 |       forward_op2!(cpu_fwd, cpu_fwd_aliased, CpuStorage);
[INFO] [stdout]     |       -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:705:5
[INFO] [stdout]     |
[INFO] [stdout] 705 |       forward_op2!(cuda_fwd, cuda_fwd_aliased, CudaStorage);
[INFO] [stdout]     |       ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op2`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:706:5
[INFO] [stdout]     |
[INFO] [stdout] 706 |       forward_op2!(metal_fwd, metal_fwd_aliased, MetalStorage);
[INFO] [stdout]     |       -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:825:5
[INFO] [stdout]     |
[INFO] [stdout] 825 |       forward_op3!(cpu_fwd, cpu_fwd_aliased, CpuStorage);
[INFO] [stdout]     |       -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:826:5
[INFO] [stdout]     |
[INFO] [stdout] 826 |       forward_op3!(cuda_fwd, cuda_fwd_aliased, CudaStorage);
[INFO] [stdout]     |       ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `bail` which comes from the expansion of the macro `forward_op3`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:827:5
[INFO] [stdout]     |
[INFO] [stdout] 827 |       forward_op3!(metal_fwd, metal_fwd_aliased, MetalStorage);
[INFO] [stdout]     |       -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:945:13
[INFO] [stdout]     |
[INFO] [stdout] 945 |             bail!("{name}: dst has repeated elements (zero-stride). Can not write in-place")
[INFO] [stdout]     |             -------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:958:28
[INFO] [stdout]     |
[INFO] [stdout] 958 |                   Some(a) => bail!(
[INFO] [stdout]     |  ____________________________-
[INFO] [stdout] 959 | |                     "src {i} shares storage with dst ({rel:?}), which is not supported for the access pattern of `{name}` ({a:?})."
[INFO] [stdout] 960 | |                 ),
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/custom_op.rs:961:25
[INFO] [stdout]     |
[INFO] [stdout] 961 |                   None => bail!(
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 962 | |                     "src {i} shares storage with dst, and `{name}` does not support aliased operands."
[INFO] [stdout] 963 | |                 ),
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:320:21
[INFO] [stdout]     |
[INFO] [stdout] 320 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:46:18
[INFO] [stdout]     |
[INFO] [stdout]  46 |             _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:68:18
[INFO] [stdout]     |
[INFO] [stdout]  68 |             _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:98:13
[INFO] [stdout]     |
[INFO] [stdout]  98 | /             crate::bail!(
[INFO] [stdout]  99 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 100 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 | /             crate::bail!(
[INFO] [stdout] 108 | |                 "tensor needs {size_in_bytes} bytes at offset {tensor_start}, only {remaining} remaining in file"
[INFO] [stdout] 109 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 | /             crate::bail!(
[INFO] [stdout] 145 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 146 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 | /             crate::bail!(
[INFO] [stdout] 162 | |                 "gguf mmap: tensor data [{start_u64}, {end_u64}) is out of bounds of the {}-byte mapping",
[INFO] [stdout] 163 | |                 mmap.len()
[INFO] [stdout] 164 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 | /             crate::bail!(
[INFO] [stdout] 212 | |                 "read_stream: expected a rank-3 expert bank, got shape {:?}",
[INFO] [stdout] 213 | |                 self.shape
[INFO] [stdout] 214 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 crate::bail!("two elements have different len {m} {}", v.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 crate::bail!("two elements have different len {m} {}", v.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:194:17
[INFO] [stdout]     |
[INFO] [stdout] 194 |                 crate::bail!("two elements have different shapes {shape:?} {shape0:?}")
[INFO] [stdout]     |                 ----------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |             crate::bail!("empty array")
[INFO] [stdout]     |             --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:228:17
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 crate::bail!("two elements have different shapes {shape:?} {shape0:?}")
[INFO] [stdout]     |                 ----------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:276:26
[INFO] [stdout]     |
[INFO] [stdout] 276 |             Self::Cpu => crate::bail!("expected a cuda device, got cpu"),
[INFO] [stdout]     |                          ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:277:31
[INFO] [stdout]     |
[INFO] [stdout] 277 |             Self::Metal(_) => crate::bail!("expected a cuda device, got Metal"),
[INFO] [stdout]     |                               ------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 |             Self::Cuda(_) => crate::bail!("expected a metal device, got cuda"),
[INFO] [stdout]     |                              ------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/device.rs:290:26
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Self::Cpu => crate::bail!("expected a metal device, got cpu"),
[INFO] [stdout]     |                          ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | /         crate::bail!(
[INFO] [stdout] 101 | |             "fattn_decode: k last dim must be {HEAD_DIM}, got {:?}",
[INFO] [stdout] 102 | |             k.dims()
[INFO] [stdout] 103 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 | /             crate::bail!(
[INFO] [stdout] 221 | |                 "read_stream: per-expert elems {per_expert_elems} not divisible by block size {block_size}"
[INFO] [stdout] 222 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |         crate::bail!("gguf: string length {len} exceeds max {GGUF_MAX_STRING_LENGTH}")
[INFO] [stdout]     |         ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         crate::bail!("gguf: string length {len} exceeds remaining file bytes {remaining}")
[INFO] [stdout]     |         ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:343:18
[INFO] [stdout]     |
[INFO] [stdout] 343 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:350:18
[INFO] [stdout]     |
[INFO] [stdout] 350 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:357:18
[INFO] [stdout]     |
[INFO] [stdout] 357 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:364:18
[INFO] [stdout]     |
[INFO] [stdout] 364 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:371:18
[INFO] [stdout]     |
[INFO] [stdout] 371 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:378:18
[INFO] [stdout]     |
[INFO] [stdout] 378 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:391:18
[INFO] [stdout]     |
[INFO] [stdout] 391 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:398:18
[INFO] [stdout]     |
[INFO] [stdout] 398 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:405:18
[INFO] [stdout]     |
[INFO] [stdout] 405 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:412:18
[INFO] [stdout]     |
[INFO] [stdout] 412 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:426:18
[INFO] [stdout]     |
[INFO] [stdout] 426 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:433:18
[INFO] [stdout]     |
[INFO] [stdout] 433 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |             crate::bail!("gguf: value nesting depth exceeds max {GGUF_MAX_VALUE_DEPTH}")
[INFO] [stdout]     |             ---------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:461:22
[INFO] [stdout]     |
[INFO] [stdout] 461 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:469:21
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     crate::bail!("gguf: array length {len} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}")
[INFO] [stdout]     |                     ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:474:21
[INFO] [stdout]     |
[INFO] [stdout] 474 | /                     crate::bail!(
[INFO] [stdout] 475 | |                         "gguf: array of {len} elements needs at least {needed} bytes, only {remaining} remaining"
[INFO] [stdout] 476 | |                     )
[INFO] [stdout]     | |_____________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         crate::bail!(
[INFO] [stdout] 107 | |             "fattn_decode: k {:?} and v {:?} must have equal shape",
[INFO] [stdout] 108 | |             k.dims(),
[INFO] [stdout] 109 | |             v.dims()
[INFO] [stdout] 110 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |           other => crate::bail!(
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 117 | |             "fattn_decode: q must be [n_head, 512] or [n_head, q_len, 512], got {other:?}"
[INFO] [stdout] 118 | |         ),
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:123:18
[INFO] [stdout]     |
[INFO] [stdout] 123 |         other => crate::bail!("fattn_decode: k rank must be 2 or 3, got {other:?}"),
[INFO] [stdout]     |                  ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | /         crate::bail!(
[INFO] [stdout] 127 | |             "fattn_decode: n_head {n_head} must be a nonzero multiple of n_kv_head {n_kv_head}"
[INFO] [stdout] 128 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         crate::bail!("fattn_decode: q_len {q_len} must be in 1..=8");
[INFO] [stdout]     |         ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         crate::bail!("fattn_decode: kv_len {kv_len} must be >= q_len {q_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 | /                 crate::bail!(
[INFO] [stdout] 160 | |                     "fattn_decode: sinks must have {n_head} elems, got {}",
[INFO] [stdout] 161 | |                     s.elem_count()
[INFO] [stdout] 162 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fattn_decode.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 |         _ => crate::bail!("fattn_decode_f32_hd512: unsupported device"),
[INFO] [stdout]     |              ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hc_sinkhorn.rs:82:21
[INFO] [stdout]     |
[INFO] [stdout]  82 |             None => crate::bail!("hc_sinkhorn requires a contiguous input"),
[INFO] [stdout]     |                     ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hc_sinkhorn.rs:86:18
[INFO] [stdout]     |
[INFO] [stdout]  86 |             _ => crate::bail!("hc_sinkhorn: f32 only"),
[INFO] [stdout]     |                  ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/indexer.rs:51:25
[INFO] [stdout]     |
[INFO] [stdout]  51 |                         crate::bail!("multi-dimensional tensor indexing 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/indexer.rs:57:42
[INFO] [stdout]     |
[INFO] [stdout]  57 |                 TensorIndexer::Err(e) => crate::bail!("indexing error {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/layout.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 264 | /             crate::bail!(
[INFO] [stdout] 265 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 266 | |                 self.dims(),
[INFO] [stdout] 267 | |                 idxs
[INFO] [stdout] 268 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             bail!("bitdelta: bad magic {magic:?}, not a .bitdelta file");
[INFO] [stdout]     |             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             bail!("bitdelta: unsupported version {version} (expected {BITDELTA_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 | /                 bail!(
[INFO] [stdout] 194 | |                     "bitdelta: tensor '{name}' shape {} needs {expected} words but file has {words_len}",
[INFO] [stdout] 195 | |                     fmt_shape(&shape)
[INFO] [stdout] 196 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 | /             bail!(
[INFO] [stdout] 243 | |                 "bitdelta encode: tensor '{name}' in {} is absent from base {}",
[INFO] [stdout] 244 | |                 finetuned.display(),
[INFO] [stdout] 245 | |                 base.display()
[INFO] [stdout] 246 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 | /             bail!(
[INFO] [stdout] 250 | |                 "bitdelta encode: tensor '{name}' shape mismatch: base {} has {} but {} has {}",
[INFO] [stdout] 251 | |                 base.display(),
[INFO] [stdout] 252 | |                 fmt_shape(base_t.dims()),
[INFO] [stdout] 253 | |                 finetuned.display(),
[INFO] [stdout] 254 | |                 fmt_shape(ft.dims())
[INFO] [stdout] 255 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 | /             bail!(
[INFO] [stdout] 302 | |                 "bitdelta decode: tensor '{}' is absent from base {}",
[INFO] [stdout] 303 | |                 meta.name,
[INFO] [stdout] 304 | |                 base.display()
[INFO] [stdout] 305 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/bitdelta.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 | /             bail!(
[INFO] [stdout] 309 | |                 "bitdelta decode: tensor '{}' shape mismatch: base {} has {} but delta has {}",
[INFO] [stdout] 310 | |                 meta.name,
[INFO] [stdout] 311 | |                 base.display(),
[INFO] [stdout] 312 | |                 fmt_shape(base_t.dims()),
[INFO] [stdout] 313 | |                 fmt_shape(&meta.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:518:25
[INFO] [stdout]     |
[INFO] [stdout] 518 |                         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:549:18
[INFO] [stdout]     |
[INFO] [stdout] 549 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:599:13
[INFO] [stdout]     |
[INFO] [stdout] 599 |             crate::bail!("gguf: tensor_count {tensor_count} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}")
[INFO] [stdout]     |             --------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:602:13
[INFO] [stdout]     |
[INFO] [stdout] 602 | /             crate::bail!(
[INFO] [stdout] 603 | |                 "gguf: metadata_kv_count {metadata_kv_count} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}"
[INFO] [stdout] 604 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:619:13
[INFO] [stdout]     |
[INFO] [stdout] 619 | / ...   crate::bail!(
[INFO] [stdout] 620 | | ...       "gguf: header declares {tensor_count} tensors and {metadata_kv_count} metadata entries, needs at least {needed} bytes, ...
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:637:17
[INFO] [stdout]     |
[INFO] [stdout] 637 | /                 crate::bail!(
[INFO] [stdout] 638 | |                     "gguf: tensor '{tensor_name}' has {n_dimensions} dimensions, max is {GGUF_MAX_TENSOR_DIMS}"
[INFO] [stdout] 639 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:702:21
[INFO] [stdout]     |
[INFO] [stdout] 702 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:735:21
[INFO] [stdout]     |
[INFO] [stdout] 735 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:15:9
[INFO] [stdout]     |
[INFO] [stdout]  15 |         bail!("soup: no models provided");
[INFO] [stdout]     |         --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:21:17
[INFO] [stdout]     |
[INFO] [stdout]  21 | /                 bail!(
[INFO] [stdout]  22 | |                     "soup: got {} weights for {n} models (lengths must match)",
[INFO] [stdout]  23 | |                     w.len()
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:28:21
[INFO] [stdout]     |
[INFO] [stdout]  28 |                     bail!("soup: weight[{i}] = {wi} is not finite");
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:31:21
[INFO] [stdout]     |
[INFO] [stdout]  31 |                     bail!("soup: weight[{i}] = {wi} is negative");
[INFO] [stdout]     |                     --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:39:9
[INFO] [stdout]     |
[INFO] [stdout]  39 |         bail!("soup: weights sum to {sum}, must be > 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:86:13
[INFO] [stdout]     |
[INFO] [stdout]  86 | /             bail!(
[INFO] [stdout]  87 | |                 "soup: {} has {} tensors but {} has {} (key sets must match)",
[INFO] [stdout]  88 | |                 path.display(),
[INFO] [stdout]  89 | |                 ckpt.len(),
[INFO] [stdout]  90 | |                 models[0].display(),
[INFO] [stdout]  91 | |                 ref_shapes.len()
[INFO] [stdout]  92 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:96:17
[INFO] [stdout]     |
[INFO] [stdout]  96 | /                 bail!(
[INFO] [stdout]  97 | |                     "soup: tensor '{name}' in {} is absent from {}",
[INFO] [stdout]  98 | |                     path.display(),
[INFO] [stdout]  99 | |                     models[0].display()
[INFO] [stdout] 100 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 | /                 bail!(
[INFO] [stdout] 104 | |                     "soup: tensor '{name}' shape mismatch: {} has {} but {} has {}",
[INFO] [stdout] 105 | |                     models[0].display(),
[INFO] [stdout] 106 | |                     fmt_shape(ref_shape),
[INFO] [stdout] 107 | |                     path.display(),
[INFO] [stdout] 108 | |                     fmt_shape(tensor.dims())
[INFO] [stdout] 109 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         bail!("delta_soup: no fine-tuned models provided");
[INFO] [stdout]     |         -------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                 bail!(
[INFO] [stdout] 159 | |                     "delta_soup: tensor '{name}' in {} is absent from base {}",
[INFO] [stdout] 160 | |                     path.display(),
[INFO] [stdout] 161 | |                     base.display()
[INFO] [stdout] 162 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:744:21
[INFO] [stdout]     |
[INFO] [stdout] 744 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:794:13
[INFO] [stdout]     |
[INFO] [stdout] 794 | /             crate::bail!(
[INFO] [stdout] 795 | |                 "internal error, unexpected current position {tensor_start_pos} {offset} {pos}"
[INFO] [stdout] 796 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/imatrix_file.rs:37:9
[INFO] [stdout]     |
[INFO] [stdout]  37 |         crate::bail!("No data in file {}", fname.as_ref().display());
[INFO] [stdout]     |         ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/imatrix_file.rs:69:13
[INFO] [stdout]     |
[INFO] [stdout]  69 |             crate::bail!("Invalid nval for entry {}: {}", i + 1, nval);
[INFO] [stdout]     |             ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/k_quants.rs:2887:9
[INFO] [stdout]      |
[INFO] [stdout] 2887 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/tokenizer.rs:41:14
[INFO] [stdout]     |
[INFO] [stdout]  41 |         _ => crate::bail!("expected numeric value for token type/id, got {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/tokenizer.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |             crate::bail!("unsupported tokenizer model `{model_kind}`");
[INFO] [stdout]     |             ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 other => crate::bail!("{other:?} is not supported on the Metal 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:321:18
[INFO] [stdout]     |
[INFO] [stdout] 321 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:342:18
[INFO] [stdout]     |
[INFO] [stdout] 342 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:354:18
[INFO] [stdout]     |
[INFO] [stdout] 354 |             _ => crate::bail!("Invalid quantize source storage locations: not on cpu"),
[INFO] [stdout]     |                  --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:375:18
[INFO] [stdout]     |
[INFO] [stdout] 375 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:409:17
[INFO] [stdout]     |
[INFO] [stdout] 409 |                 crate::bail!("streaming expert bank has no whole-tensor dequantize; consume it via indexed_moe_forward")
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:436:17
[INFO] [stdout]     |
[INFO] [stdout] 436 | /                 crate::bail!(
[INFO] [stdout] 437 | |                     "streaming expert bank is not resident; consume it via indexed_moe_forward"
[INFO] [stdout] 438 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/model_delta/soup.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 | /                 bail!(
[INFO] [stdout] 166 | |                     "delta_soup: tensor '{name}' shape mismatch: base {} has {} but {} has {}",
[INFO] [stdout] 167 | |                     base.display(),
[INFO] [stdout] 168 | |                     fmt_shape(base_t.dims()),
[INFO] [stdout] 169 | |                     path.display(),
[INFO] [stdout] 170 | |                     fmt_shape(tensor.dims())
[INFO] [stdout] 171 | |                 );
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/npy.rs:405:21
[INFO] [stdout]     |
[INFO] [stdout] 405 |             None => crate::bail!("cannot find tensor {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 332 |             None => crate::bail!("unexpected empty stack"),
[INFO] [stdout]     |                     -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:385:21
[INFO] [stdout]     |
[INFO] [stdout] 385 |             None => crate::bail!("unexpected empty stack"),
[INFO] [stdout]     |                     -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:392:21
[INFO] [stdout]     |
[INFO] [stdout] 392 |             None => crate::bail!("missing object in memo {id}"),
[INFO] [stdout]     |                     ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:432:17
[INFO] [stdout]     |
[INFO] [stdout] 432 |                 crate::bail!("marker object 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:441:17
[INFO] [stdout]     |
[INFO] [stdout] 441 |                 crate::bail!("unknown op-code {op_code}")
[INFO] [stdout]     |                 ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:521:21
[INFO] [stdout]     |
[INFO] [stdout] 521 |                     crate::bail!("expected a list, got {pylist:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:530:21
[INFO] [stdout]     |
[INFO] [stdout] 530 |                     crate::bail!("expected a list, got {pylist:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:540:21
[INFO] [stdout]     |
[INFO] [stdout] 540 |                     crate::bail!("expected a dict, got {pydict:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:548:25
[INFO] [stdout]     |
[INFO] [stdout] 548 |                         crate::bail!("setitems: not an even number of objects")
[INFO] [stdout]     |                         ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:555:21
[INFO] [stdout]     |
[INFO] [stdout] 555 |                     crate::bail!("expected a dict, got {pydict:?}")
[INFO] [stdout]     |                     ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:568:21
[INFO] [stdout]     |
[INFO] [stdout] 568 |                     crate::bail!("setitems: not an even number of objects")
[INFO] [stdout]     |                     ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:644:13
[INFO] [stdout]     |
[INFO] [stdout] 644 |             crate::bail!("unsupported storage type {other}")
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pickle.rs:781:13
[INFO] [stdout]     |
[INFO] [stdout] 781 | /             crate::bail!(
[INFO] [stdout] 782 | |                 "cannot retrieve non-contiguous tensors {:?}",
[INFO] [stdout] 783 | |                 tensor_info.layout
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         crate::bail!("DSV4 Hadamard-128 requires a 128-wide row, got {}", x.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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         crate::bail!("DSV4 FP8 KV round-trip: head_dim must be non-zero");
[INFO] [stdout]     |         ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |         crate::bail!("DSV4 FP8 KV round-trip: n_rot {n_rot} exceeds head_dim {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 crate::bail!("not implemented");
[INFO] [stdout]     |                 ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `for_each_quant`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:665:5
[INFO] [stdout]     |
[INFO] [stdout] 665 |       for_each_quant!(gen_from_u32);
[INFO] [stdout]     |       ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:735:9
[INFO] [stdout]     |
[INFO] [stdout] 735 | /         crate::bail!(
[INFO] [stdout] 736 | |             "quantized embedding hidden size {hidden} is not divisible by block size {}",
[INFO] [stdout] 737 | |             T::BLCK_SIZE
[INFO] [stdout] 738 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:742:9
[INFO] [stdout]     |
[INFO] [stdout] 742 | /         crate::bail!(
[INFO] [stdout] 743 | |             "quantized tensor has {} blocks, expected {}",
[INFO] [stdout] 744 | |             blocks.len(),
[INFO] [stdout] 745 | |             rows * row_blocks
[INFO] [stdout] 746 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:752:13
[INFO] [stdout]     |
[INFO] [stdout] 752 |             crate::bail!("embedding id {row} is out of range for {rows} rows")
[INFO] [stdout]     |             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:927:9
[INFO] [stdout]     |
[INFO] [stdout] 927 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:930:9
[INFO] [stdout]     |
[INFO] [stdout] 930 | /         crate::bail!(
[INFO] [stdout] 931 | |             "quantized tensor must have their last dim divisible by block size {shape:?} {}",
[INFO] [stdout] 932 | |             block_size
[INFO] [stdout] 933 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 | /             crate::bail!(
[INFO] [stdout] 966 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 967 | |                 block_size
[INFO] [stdout] 968 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:984:13
[INFO] [stdout]     |
[INFO] [stdout] 984 | /             crate::bail!(
[INFO] [stdout] 985 | |                 "imatrix weights must have the same length {} as the last dim of src {}",
[INFO] [stdout] 986 | |                 imatrix_weights.len(),
[INFO] [stdout] 987 | |                 src.dim(D::Minus1)?
[INFO] [stdout] 988 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |         crate::bail!("DSV4 FP8 KV round-trip: nope width {n_nope} must be a multiple of 64");
[INFO] [stdout]     |         ------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 254 | /         crate::bail!(
[INFO] [stdout] 255 | |             "DSV4 FP8 KV round-trip: buffer len {} is not a multiple of head_dim {head_dim}",
[INFO] [stdout] 256 | |             x.len()
[INFO] [stdout] 257 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |         crate::bail!("DSV4 indexer QAT expects 128-wide rows, got {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 | /         crate::bail!(
[INFO] [stdout] 274 | |             "DSV4 indexer QAT: buffer len {} is not a multiple of 128",
[INFO] [stdout] 275 | |             x.len()
[INFO] [stdout] 276 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/dsv4_qat.rs:299:17
[INFO] [stdout]     |
[INFO] [stdout] 299 |         None => crate::bail!("DSV4 QAT: scalar tensor has no row dimension"),
[INFO] [stdout]     |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | /         crate::bail!(
[INFO] [stdout] 156 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 157 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 |         _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:279:19
[INFO] [stdout]     |
[INFO] [stdout] 279 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/ggml_file.rs:320:21
[INFO] [stdout]     |
[INFO] [stdout] 320 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:46:18
[INFO] [stdout]     |
[INFO] [stdout]  46 |             _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:68:18
[INFO] [stdout]     |
[INFO] [stdout]  68 |             _ => 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:997:13
[INFO] [stdout]      |
[INFO] [stdout]  997 | /             crate::bail!(
[INFO] [stdout]  998 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout]  999 | |                 block_size
[INFO] [stdout] 1000 | |             );
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1015:13
[INFO] [stdout]      |
[INFO] [stdout] 1015 | /             crate::bail!(
[INFO] [stdout] 1016 | |                 "`quantize_onto` expects a `src` to be on the cpu, got {:?}.",
[INFO] [stdout] 1017 | |                 src.device()
[INFO] [stdout] 1018 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1024:13
[INFO] [stdout]      |
[INFO] [stdout] 1024 | /             crate::bail!(
[INFO] [stdout] 1025 | |                 "imatrix weights must have the same length {} as the last dim of src {}",
[INFO] [stdout] 1026 | |                 imatrix_weights.len(),
[INFO] [stdout] 1027 | |                 src.dim(D::Minus1)?
[INFO] [stdout] 1028 | |             );
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1036:13
[INFO] [stdout]      |
[INFO] [stdout] 1036 | /             crate::bail!(
[INFO] [stdout] 1037 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 1038 | |                 block_size
[INFO] [stdout] 1039 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1050:13
[INFO] [stdout]      |
[INFO] [stdout] 1050 | /             crate::bail!(
[INFO] [stdout] 1051 | |                 "`quantize_onto` expects a `src` to be on the cpu, got {:?}.",
[INFO] [stdout] 1052 | |                 src.device()
[INFO] [stdout] 1053 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1061:13
[INFO] [stdout]      |
[INFO] [stdout] 1061 | /             crate::bail!(
[INFO] [stdout] 1062 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 1063 | |                 block_size
[INFO] [stdout] 1064 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1114:13
[INFO] [stdout]      |
[INFO] [stdout] 1114 | /             crate::bail!(
[INFO] [stdout] 1115 | |                 "quantized embedding hidden size {hidden} is not divisible by block size {}",
[INFO] [stdout] 1116 | |                 self.dtype().block_size()
[INFO] [stdout] 1117 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1151:17
[INFO] [stdout]      |
[INFO] [stdout] 1151 |                 crate::bail!("streaming expert bank is not resident; it has no embedding rows")
[INFO] [stdout]      |                 ------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1178:13
[INFO] [stdout]      |
[INFO] [stdout] 1178 |             crate::bail!("matmul_into: lhs of {} values for k {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1182:13
[INFO] [stdout]      |
[INFO] [stdout] 1182 |             crate::bail!("matmul_into: dst of {} values for {m} x {n}", 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1186:18
[INFO] [stdout]      |
[INFO] [stdout] 1186 |             _ => crate::bail!("matmul_into: a CPU weight"),
[INFO] [stdout]      |                  ----------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1669:25
[INFO] [stdout]      |
[INFO] [stdout] 1669 |                         crate::bail!("indexed_moe_forward: expert id {eid} >= num_experts {e_cnt}");
[INFO] [stdout]      |                         --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1707:17
[INFO] [stdout]      |
[INFO] [stdout] 1707 |                 crate::bail!("not implemented");
[INFO] [stdout]      |                 ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2879:13
[INFO] [stdout]      |
[INFO] [stdout] 2879 |             crate::bail!("input tensor is not contiguous {layout:?}")
[INFO] [stdout]      |             --------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2885:13
[INFO] [stdout]      |
[INFO] [stdout] 2885 |             crate::bail!("input tensor has only one dimension {layout:?}")
[INFO] [stdout]      |             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2890:13
[INFO] [stdout]      |
[INFO] [stdout] 2890 |             crate::bail!("input tensor {layout:?} incompatible with {:?}", 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2904:17
[INFO] [stdout]      |
[INFO] [stdout] 2904 |                 crate::bail!("Invalid 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:98:13
[INFO] [stdout]     |
[INFO] [stdout]  98 | /             crate::bail!(
[INFO] [stdout]  99 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 100 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 | /             crate::bail!(
[INFO] [stdout] 108 | |                 "tensor needs {size_in_bytes} bytes at offset {tensor_start}, only {remaining} remaining in file"
[INFO] [stdout] 109 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 | /             crate::bail!(
[INFO] [stdout] 145 | |             "the number of elements {tensor_elems} is not divisible by the block size {block_size}"
[INFO] [stdout] 146 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 | /             crate::bail!(
[INFO] [stdout] 162 | |                 "gguf mmap: tensor data [{start_u64}, {end_u64}) is out of bounds of the {}-byte mapping",
[INFO] [stdout] 163 | |                 mmap.len()
[INFO] [stdout] 164 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 | /             crate::bail!(
[INFO] [stdout] 212 | |                 "read_stream: expected a rank-3 expert bank, got shape {:?}",
[INFO] [stdout] 213 | |                 self.shape
[INFO] [stdout] 214 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 | /             crate::bail!(
[INFO] [stdout] 221 | |                 "read_stream: per-expert elems {per_expert_elems} not divisible by block size {block_size}"
[INFO] [stdout] 222 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |         crate::bail!("gguf: string length {len} exceeds max {GGUF_MAX_STRING_LENGTH}")
[INFO] [stdout]     |         ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         crate::bail!("gguf: string length {len} exceeds remaining file bytes {remaining}")
[INFO] [stdout]     |         ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:343:18
[INFO] [stdout]     |
[INFO] [stdout] 343 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:350:18
[INFO] [stdout]     |
[INFO] [stdout] 350 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:357:18
[INFO] [stdout]     |
[INFO] [stdout] 357 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:364:18
[INFO] [stdout]     |
[INFO] [stdout] 364 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:371:18
[INFO] [stdout]     |
[INFO] [stdout] 371 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:378:18
[INFO] [stdout]     |
[INFO] [stdout] 378 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:391:18
[INFO] [stdout]     |
[INFO] [stdout] 391 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:398:18
[INFO] [stdout]     |
[INFO] [stdout] 398 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:405:18
[INFO] [stdout]     |
[INFO] [stdout] 405 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:412:18
[INFO] [stdout]     |
[INFO] [stdout] 412 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:426:18
[INFO] [stdout]     |
[INFO] [stdout] 426 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:433:18
[INFO] [stdout]     |
[INFO] [stdout] 433 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |             crate::bail!("gguf: value nesting depth exceeds max {GGUF_MAX_VALUE_DEPTH}")
[INFO] [stdout]     |             ---------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:461:22
[INFO] [stdout]     |
[INFO] [stdout] 461 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2963:18
[INFO] [stdout]      |
[INFO] [stdout] 2963 |             _ => crate::bail!("Expected f32/f16/bf16"),
[INFO] [stdout]      |                  ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |             crate::bail!("only 2d matrixes are supported {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             crate::bail!("different inner dimensions in broadcast matmul {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 496 |         crate::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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:499:9
[INFO] [stdout]     |
[INFO] [stdout] 499 |         crate::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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sort.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 |             None => crate::bail!("input has to be contiguous"),
[INFO] [stdout]     |                     ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sort.rs:305:21
[INFO] [stdout]     |
[INFO] [stdout] 305 |             None => crate::bail!("empty last-dim in arg-sort"),
[INFO] [stdout]     |                     ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/streaming.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |             (lhs, rhs) => crate::bail!("INTERNAL ERROR inconsistent lhs and rhs {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |             bail!("step cannot be zero")
[INFO] [stdout]     |             ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1366:13
[INFO] [stdout]      |
[INFO] [stdout] 1366 |             bail!("kernel-size {kernel_size:?} is larger than the input size {h},{w}")
[INFO] [stdout]      |             -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1404:13
[INFO] [stdout]      |
[INFO] [stdout] 1404 |             bail!("kernel-size {kernel_size:?} is larger than the input size {h},{w}")
[INFO] [stdout]      |             -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:469:21
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     crate::bail!("gguf: array length {len} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}")
[INFO] [stdout]     |                     ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:474:21
[INFO] [stdout]     |
[INFO] [stdout] 474 | /                     crate::bail!(
[INFO] [stdout] 475 | |                         "gguf: array of {len} elements needs at least {needed} bytes, only {remaining} remaining"
[INFO] [stdout] 476 | |                     )
[INFO] [stdout]     | |_____________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:518:25
[INFO] [stdout]     |
[INFO] [stdout] 518 |                         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1461:13
[INFO] [stdout]      |
[INFO] [stdout] 1461 |             bail!("norm not supported for integer dtypes");
[INFO] [stdout]      |             ---------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1702:13
[INFO] [stdout]      |
[INFO] [stdout] 1702 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1741:13
[INFO] [stdout]      |
[INFO] [stdout] 1741 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2353:13
[INFO] [stdout]      |
[INFO] [stdout] 2353 | /             bail!(
[INFO] [stdout] 2354 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 2355 | |                 self.dims(),
[INFO] [stdout] 2356 | |                 dims
[INFO] [stdout] 2357 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:549:18
[INFO] [stdout]     |
[INFO] [stdout] 549 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:599:13
[INFO] [stdout]     |
[INFO] [stdout] 599 |             crate::bail!("gguf: tensor_count {tensor_count} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}")
[INFO] [stdout]     |             --------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:602:13
[INFO] [stdout]     |
[INFO] [stdout] 602 | /             crate::bail!(
[INFO] [stdout] 603 | |                 "gguf: metadata_kv_count {metadata_kv_count} exceeds max {GGUF_MAX_ARRAY_ELEMENTS}"
[INFO] [stdout] 604 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:619:13
[INFO] [stdout]     |
[INFO] [stdout] 619 | / ...   crate::bail!(
[INFO] [stdout] 620 | | ...       "gguf: header declares {tensor_count} tensors and {metadata_kv_count} metadata entries, needs at least {needed} bytes, ...
[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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:637:17
[INFO] [stdout]     |
[INFO] [stdout] 637 | /                 crate::bail!(
[INFO] [stdout] 638 | |                     "gguf: tensor '{tensor_name}' has {n_dimensions} dimensions, max is {GGUF_MAX_TENSOR_DIMS}"
[INFO] [stdout] 639 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:702:21
[INFO] [stdout]     |
[INFO] [stdout] 702 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:735:21
[INFO] [stdout]     |
[INFO] [stdout] 735 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:744:21
[INFO] [stdout]     |
[INFO] [stdout] 744 |             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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/gguf_file.rs:794:13
[INFO] [stdout]     |
[INFO] [stdout] 794 | /             crate::bail!(
[INFO] [stdout] 795 | |                 "internal error, unexpected current position {tensor_start_pos} {offset} {pos}"
[INFO] [stdout] 796 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/imatrix_file.rs:37:9
[INFO] [stdout]     |
[INFO] [stdout]  37 |         crate::bail!("No data in file {}", fname.as_ref().display());
[INFO] [stdout]     |         ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2474:21
[INFO] [stdout]      |
[INFO] [stdout] 2474 | /                     bail!(
[INFO] [stdout] 2475 | |                         "not implemented yet, self.device: {:?}, device: {:?}",
[INFO] [stdout] 2476 | |                         self.device(),
[INFO] [stdout] 2477 | |                         device
[INFO] [stdout] 2478 | |                     )
[INFO] [stdout]      | |_____________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2774:13
[INFO] [stdout]      |
[INFO] [stdout] 2774 |             bail!("cannot use pad_with_same on an empty 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2860:13
[INFO] [stdout]      |
[INFO] [stdout] 2860 |             bail!("axis {axis} is too large, tensor rank {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2866:17
[INFO] [stdout]      |
[INFO] [stdout] 2866 |                 bail!("axis {axis} is too small, tensor rank {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2928:13
[INFO] [stdout]      |
[INFO] [stdout] 2928 | /             bail!(
[INFO] [stdout] 2929 | |                 "slice-assign requires input with the same rank {} <> {}",
[INFO] [stdout] 2930 | |                 self_dims.len(),
[INFO] [stdout] 2931 | |                 src_dims.len()
[INFO] [stdout] 2932 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2935:13
[INFO] [stdout]      |
[INFO] [stdout] 2935 | /             bail!(
[INFO] [stdout] 2936 | |                 "slice-assign requires input with the same rank as there are ranges {} <> {}",
[INFO] [stdout] 2937 | |                 self_dims.len(),
[INFO] [stdout] 2938 | |                 ranges.len()
[INFO] [stdout] 2939 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/imatrix_file.rs:69:13
[INFO] [stdout]     |
[INFO] [stdout]  69 |             crate::bail!("Invalid nval for entry {}: {}", i + 1, nval);
[INFO] [stdout]     |             ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2955:17
[INFO] [stdout]      |
[INFO] [stdout] 2955 |                 bail!("slice-assign: empty range for dim {i}, {start_included} {end_excluded}")
[INFO] [stdout]      |                 ------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2958:17
[INFO] [stdout]      |
[INFO] [stdout] 2958 | /                 bail!(
[INFO] [stdout] 2959 | |                     "slice-assign: upper bound is out of range for dim {i}, {end_excluded} {}",
[INFO] [stdout] 2960 | |                     self_dims[i]
[INFO] [stdout] 2961 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2964:17
[INFO] [stdout]      |
[INFO] [stdout] 2964 | / ...   bail!(
[INFO] [stdout] 2965 | | ...       "slice-assign: the range for dim {i} ({start_included}..{end_excluded}) does not match the size of src {}", src_dims[i]
[INFO] [stdout] 2966 | | ...   )
[INFO] [stdout]      | |_______- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/k_quants.rs:2887:9
[INFO] [stdout]      |
[INFO] [stdout] 2887 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/tokenizer.rs:41:14
[INFO] [stdout]     |
[INFO] [stdout]  41 |         _ => crate::bail!("expected numeric value for token type/id, got {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/tokenizer.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |             crate::bail!("unsupported tokenizer model `{model_kind}`");
[INFO] [stdout]     |             ---------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 other => crate::bail!("{other:?} is not supported on the Metal 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:321:18
[INFO] [stdout]     |
[INFO] [stdout] 321 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:342:18
[INFO] [stdout]     |
[INFO] [stdout] 342 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:354:18
[INFO] [stdout]     |
[INFO] [stdout] 354 |             _ => crate::bail!("Invalid quantize source storage locations: not on cpu"),
[INFO] [stdout]     |                  --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:375:18
[INFO] [stdout]     |
[INFO] [stdout] 375 |             _ => crate::bail!("Invalid quantize storage locations do not match"),
[INFO] [stdout]     |                  --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:409:17
[INFO] [stdout]     |
[INFO] [stdout] 409 |                 crate::bail!("streaming expert bank has no whole-tensor dequantize; consume it via indexed_moe_forward")
[INFO] [stdout]     |                 -------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout]  288 |       ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:3038:13
[INFO] [stdout]      |
[INFO] [stdout] 3038 | /             bail!(
[INFO] [stdout] 3039 | |                 "unsqueeze: maximum size for tensor at dimension {dim} is {max_len} but size is {size}"
[INFO] [stdout] 3040 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:284:17
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] 288 |       ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:436:17
[INFO] [stdout]     |
[INFO] [stdout] 436 | /                 crate::bail!(
[INFO] [stdout] 437 | |                     "streaming expert bank is not resident; consume it via indexed_moe_forward"
[INFO] [stdout] 438 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 crate::bail!("not implemented");
[INFO] [stdout]     |                 ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | / macro_rules! bail {
[INFO] [stdout] 288 | |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 | |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     | |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 296 | |     };
[INFO] [stdout] 297 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::bail` which comes from the expansion of the macro `for_each_quant`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:665:5
[INFO] [stdout]     |
[INFO] [stdout] 665 |       for_each_quant!(gen_from_u32);
[INFO] [stdout]     |       ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:735:9
[INFO] [stdout]     |
[INFO] [stdout] 735 | /         crate::bail!(
[INFO] [stdout] 736 | |             "quantized embedding hidden size {hidden} is not divisible by block size {}",
[INFO] [stdout] 737 | |             T::BLCK_SIZE
[INFO] [stdout] 738 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:742:9
[INFO] [stdout]     |
[INFO] [stdout] 742 | /         crate::bail!(
[INFO] [stdout] 743 | |             "quantized tensor has {} blocks, expected {}",
[INFO] [stdout] 744 | |             blocks.len(),
[INFO] [stdout] 745 | |             rows * row_blocks
[INFO] [stdout] 746 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:752:13
[INFO] [stdout]     |
[INFO] [stdout] 752 |             crate::bail!("embedding id {row} is out of range for {rows} rows")
[INFO] [stdout]     |             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:927:9
[INFO] [stdout]     |
[INFO] [stdout] 927 |         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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:930:9
[INFO] [stdout]     |
[INFO] [stdout] 930 | /         crate::bail!(
[INFO] [stdout] 931 | |             "quantized tensor must have their last dim divisible by block size {shape:?} {}",
[INFO] [stdout] 932 | |             block_size
[INFO] [stdout] 933 | |         )
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 | /             crate::bail!(
[INFO] [stdout] 966 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 967 | |                 block_size
[INFO] [stdout] 968 | |             )
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:295:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout] 295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/quantized/mod.rs:984:13
[INFO] [stdout]     |
[INFO] [stdout] 984 | /             crate::bail!(
[INFO] [stdout] 985 | |                 "imatrix weights must have the same length {} as the last dim of src {}",
[INFO] [stdout] 986 | |                 imatrix_weights.len(),
[INFO] [stdout] 987 | |                 src.dim(D::Minus1)?
[INFO] [stdout] 988 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:997:13
[INFO] [stdout]      |
[INFO] [stdout]  997 | /             crate::bail!(
[INFO] [stdout]  998 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout]  999 | |                 block_size
[INFO] [stdout] 1000 | |             );
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1015:13
[INFO] [stdout]      |
[INFO] [stdout] 1015 | /             crate::bail!(
[INFO] [stdout] 1016 | |                 "`quantize_onto` expects a `src` to be on the cpu, got {:?}.",
[INFO] [stdout] 1017 | |                 src.device()
[INFO] [stdout] 1018 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1024:13
[INFO] [stdout]      |
[INFO] [stdout] 1024 | /             crate::bail!(
[INFO] [stdout] 1025 | |                 "imatrix weights must have the same length {} as the last dim of src {}",
[INFO] [stdout] 1026 | |                 imatrix_weights.len(),
[INFO] [stdout] 1027 | |                 src.dim(D::Minus1)?
[INFO] [stdout] 1028 | |             );
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1036:13
[INFO] [stdout]      |
[INFO] [stdout] 1036 | /             crate::bail!(
[INFO] [stdout] 1037 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 1038 | |                 block_size
[INFO] [stdout] 1039 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1050:13
[INFO] [stdout]      |
[INFO] [stdout] 1050 | /             crate::bail!(
[INFO] [stdout] 1051 | |                 "`quantize_onto` expects a `src` to be on the cpu, got {:?}.",
[INFO] [stdout] 1052 | |                 src.device()
[INFO] [stdout] 1053 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1061:13
[INFO] [stdout]      |
[INFO] [stdout] 1061 | /             crate::bail!(
[INFO] [stdout] 1062 | |                 "tensor size ({shape:?}) is not divisible by block size {}",
[INFO] [stdout] 1063 | |                 block_size
[INFO] [stdout] 1064 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1114:13
[INFO] [stdout]      |
[INFO] [stdout] 1114 | /             crate::bail!(
[INFO] [stdout] 1115 | |                 "quantized embedding hidden size {hidden} is not divisible by block size {}",
[INFO] [stdout] 1116 | |                 self.dtype().block_size()
[INFO] [stdout] 1117 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1151:17
[INFO] [stdout]      |
[INFO] [stdout] 1151 |                 crate::bail!("streaming expert bank is not resident; it has no embedding rows")
[INFO] [stdout]      |                 ------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1178:13
[INFO] [stdout]      |
[INFO] [stdout] 1178 |             crate::bail!("matmul_into: lhs of {} values for k {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1182:13
[INFO] [stdout]      |
[INFO] [stdout] 1182 |             crate::bail!("matmul_into: dst of {} values for {m} x {n}", 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1186:18
[INFO] [stdout]      |
[INFO] [stdout] 1186 |             _ => crate::bail!("matmul_into: a CPU weight"),
[INFO] [stdout]      |                  ----------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1669:25
[INFO] [stdout]      |
[INFO] [stdout] 1669 |                         crate::bail!("indexed_moe_forward: expert id {eid} >= num_experts {e_cnt}");
[INFO] [stdout]      |                         --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:1707:17
[INFO] [stdout]      |
[INFO] [stdout] 1707 |                 crate::bail!("not implemented");
[INFO] [stdout]      |                 ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2879:13
[INFO] [stdout]      |
[INFO] [stdout] 2879 |             crate::bail!("input tensor is not contiguous {layout:?}")
[INFO] [stdout]      |             --------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2885:13
[INFO] [stdout]      |
[INFO] [stdout] 2885 |             crate::bail!("input tensor has only one dimension {layout:?}")
[INFO] [stdout]      |             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |         return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2890:13
[INFO] [stdout]      |
[INFO] [stdout] 2890 |             crate::bail!("input tensor {layout:?} incompatible with {:?}", 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2904:17
[INFO] [stdout]      |
[INFO] [stdout] 2904 |                 crate::bail!("Invalid 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/quantized/mod.rs:2963:18
[INFO] [stdout]      |
[INFO] [stdout] 2963 |             _ => crate::bail!("Expected f32/f16/bf16"),
[INFO] [stdout]      |                  ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |             crate::bail!("only 2d matrixes are supported {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             crate::bail!("different inner dimensions in broadcast matmul {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 496 |         crate::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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shape.rs:499:9
[INFO] [stdout]     |
[INFO] [stdout] 499 |         crate::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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sort.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 |             None => crate::bail!("input has to be contiguous"),
[INFO] [stdout]     |                     ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sort.rs:305:21
[INFO] [stdout]     |
[INFO] [stdout] 305 |             None => crate::bail!("empty last-dim in arg-sort"),
[INFO] [stdout]     |                     ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/streaming.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |             (lhs, rhs) => crate::bail!("INTERNAL ERROR inconsistent lhs and rhs {lhs:?} {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |             bail!("step cannot be zero")
[INFO] [stdout]     |             ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1366:13
[INFO] [stdout]      |
[INFO] [stdout] 1366 |             bail!("kernel-size {kernel_size:?} is larger than the input size {h},{w}")
[INFO] [stdout]      |             -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1404:13
[INFO] [stdout]      |
[INFO] [stdout] 1404 |             bail!("kernel-size {kernel_size:?} is larger than the input size {h},{w}")
[INFO] [stdout]      |             -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1461:13
[INFO] [stdout]      |
[INFO] [stdout] 1461 |             bail!("norm not supported for integer dtypes");
[INFO] [stdout]      |             ---------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1702:13
[INFO] [stdout]      |
[INFO] [stdout] 1702 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:1741:13
[INFO] [stdout]      |
[INFO] [stdout] 1741 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2353:13
[INFO] [stdout]      |
[INFO] [stdout] 2353 | /             bail!(
[INFO] [stdout] 2354 | |                 "dimension mismatch in permute, tensor {:?}, dims: {:?}",
[INFO] [stdout] 2355 | |                 self.dims(),
[INFO] [stdout] 2356 | |                 dims
[INFO] [stdout] 2357 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2474:21
[INFO] [stdout]      |
[INFO] [stdout] 2474 | /                     bail!(
[INFO] [stdout] 2475 | |                         "not implemented yet, self.device: {:?}, device: {:?}",
[INFO] [stdout] 2476 | |                         self.device(),
[INFO] [stdout] 2477 | |                         device
[INFO] [stdout] 2478 | |                     )
[INFO] [stdout]      | |_____________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2774:13
[INFO] [stdout]      |
[INFO] [stdout] 2774 |             bail!("cannot use pad_with_same on an empty 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2860:13
[INFO] [stdout]      |
[INFO] [stdout] 2860 |             bail!("axis {axis} is too large, tensor rank {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2866:17
[INFO] [stdout]      |
[INFO] [stdout] 2866 |                 bail!("axis {axis} is too small, tensor rank {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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2928:13
[INFO] [stdout]      |
[INFO] [stdout] 2928 | /             bail!(
[INFO] [stdout] 2929 | |                 "slice-assign requires input with the same rank {} <> {}",
[INFO] [stdout] 2930 | |                 self_dims.len(),
[INFO] [stdout] 2931 | |                 src_dims.len()
[INFO] [stdout] 2932 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2935:13
[INFO] [stdout]      |
[INFO] [stdout] 2935 | /             bail!(
[INFO] [stdout] 2936 | |                 "slice-assign requires input with the same rank as there are ranges {} <> {}",
[INFO] [stdout] 2937 | |                 self_dims.len(),
[INFO] [stdout] 2938 | |                 ranges.len()
[INFO] [stdout] 2939 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 | macro_rules! bail {
[INFO] [stdout]  288 |     ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2955:17
[INFO] [stdout]      |
[INFO] [stdout] 2955 |                 bail!("slice-assign: empty range for dim {i}, {start_included} {end_excluded}")
[INFO] [stdout]      |                 ------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2958:17
[INFO] [stdout]      |
[INFO] [stdout] 2958 | /                 bail!(
[INFO] [stdout] 2959 | |                     "slice-assign: upper bound is out of range for dim {i}, {end_excluded} {}",
[INFO] [stdout] 2960 | |                     self_dims[i]
[INFO] [stdout] 2961 | |                 )
[INFO] [stdout]      | |_________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:295:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout] ...
[INFO] [stdout]  295 |           return Err($crate::Error::Msg(format!($fmt, $($arg)*).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:2964:17
[INFO] [stdout]      |
[INFO] [stdout] 2964 | / ...   bail!(
[INFO] [stdout] 2965 | | ...       "slice-assign: the range for dim {i} ({start_included}..{end_excluded}) does not match the size of src {}", src_dims[i]
[INFO] [stdout] 2966 | | ...   )
[INFO] [stdout]      | |_______- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/error.rs:289:39
[INFO] [stdout]      |
[INFO] [stdout]  287 |   macro_rules! bail {
[INFO] [stdout]  288 |       ($msg:literal $(,)?) => {
[INFO] [stdout]  289 |           return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/tensor.rs:3038:13
[INFO] [stdout]      |
[INFO] [stdout] 3038 | /             bail!(
[INFO] [stdout] 3039 | |                 "unsqueeze: maximum size for tensor at dimension {dim} is {max_len} but size is {size}"
[INFO] [stdout] 3040 | |             )
[INFO] [stdout]      | |_____________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |             crate::bail!("cannot use slice_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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/error.rs:289:39
[INFO] [stdout]     |
[INFO] [stdout] 287 | macro_rules! bail {
[INFO] [stdout] 288 |     ($msg:literal $(,)?) => {
[INFO] [stdout] 289 |         return Err($crate::Error::Msg(format!($msg).into()).bt())
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tensor_cat.rs:284:17
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 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 `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hanzo-ml` (lib test) due to 224 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `hanzo-ml` (lib) due to 224 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee", kill_on_drop: false }`
[INFO] [stdout] ba02619846250525d8f6681b2b4a5f0101008f4bda8c2689a488fdcc4f856bee
