[INFO] fetching crate hydra-dx-math 4.4.3...
[INFO] checking hydra-dx-math-4.4.3 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate hydra-dx-math 4.4.3 into /workspace/builds/worker-3-tc2/source
[INFO] removed /workspace/builds/worker-3-tc2/source/rust-toolchain
[INFO] started tweaking crates.io crate hydra-dx-math 4.4.3
[INFO] finished tweaking crates.io crate hydra-dx-math 4.4.3
[INFO] tweaked toml for crates.io crate hydra-dx-math 4.4.3 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate hydra-dx-math 4.4.3 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 141 packages to highest compatible versions
[INFO] [stderr]       Adding approx v0.3.2 (available: v0.5.1)
[INFO] [stderr]       Adding criterion v0.3.6 (available: v0.8.2)
[INFO] [stderr]       Adding parity-scale-codec v2.3.1 (available: v3.7.5)
[INFO] [stderr]       Adding primitive-types v0.8.0 (available: v0.14.0)
[INFO] [stderr]       Adding rand v0.7.3 (available: v0.10.3)
[INFO] [stderr]       Adding rand_xoshiro v0.4.0 (available: v0.8.1)
[INFO] [stderr]       Adding sp-arithmetic v4.0.0 (available: v29.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | homepage = "https://github.com/galacticcouncil/hydradx-math"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 | repository = "https://github.com/galacticcouncil/hydradx-math"
[INFO] [stderr]    |              -------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `hydra-dx-math` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc
[INFO] running `Command { std: "docker" "start" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc", 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" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc", 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" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | homepage = "https://github.com/galacticcouncil/hydradx-math"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 | repository = "https://github.com/galacticcouncil/hydradx-math"
[INFO] [stderr]    |              -------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `hydra-dx-math` (manifest) generated 1 warning
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling zerocopy v0.8.63
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling rustix v1.1.6
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking bitflags v2.13.2
[INFO] [stderr]     Checking byte-slice-cast v1.2.3
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]    Compiling fixed v1.31.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking serde_json v1.0.154
[INFO] [stderr]     Checking uint v0.9.5
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking fixed-hash v0.7.0
[INFO] [stderr]     Checking integer-sqrt v0.1.5
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking cpufeatures v0.3.1
[INFO] [stderr]     Checking sp-std v4.0.0
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking bit-vec v0.10.1
[INFO] [stderr]     Checking az v1.3.0
[INFO] [stderr]     Checking bit-set v0.11.1
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking chacha20 v0.10.2
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking primitive-types v0.8.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking rand v0.10.3
[INFO] [stderr]     Checking rand_xorshift v0.5.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking core_detect v1.0.0
[INFO] [stderr]     Checking criterion v0.3.6
[INFO] [stderr]     Checking rand_xoshiro v0.4.0
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking proptest v1.12.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.63
[INFO] [stderr]    Compiling impl-trait-for-tuples v0.2.3
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling parity-scale-codec-derive v2.3.1
[INFO] [stderr]    Compiling scale-info-derive v1.0.0
[INFO] [stderr]    Compiling sp-debug-derive v4.0.0
[INFO] [stderr]     Checking parity-scale-codec v2.3.1
[INFO] [stderr]     Checking scale-info v1.0.0
[INFO] [stderr]     Checking sp-arithmetic v4.0.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking hydra-dx-math v4.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::str::FromStr`
[INFO] [stdout]    --> src/transcendental.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use core::str::FromStr;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let default_fee = (2, 1000).into();
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 27 -         let default_fee = (2, 1000).into();
[INFO] [stdout] 27 +         let default_fee = (2, 1000);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 27 -         let default_fee = (2, 1000).into();
[INFO] [stdout] 27 +         let default_fee = <(u32, u32) as Into<_>>::into((2, 1000));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:35:31
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let ten_percent_fee = (1, 10).into();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 35 -         let ten_percent_fee = (1, 10).into();
[INFO] [stdout] 35 +         let ten_percent_fee = (1, 10);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 35 -         let ten_percent_fee = (1, 10).into();
[INFO] [stdout] 35 +         let ten_percent_fee = <(u32, u32) as Into<_>>::into((1, 10));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:43:52
[INFO] [stdout]    |
[INFO] [stdout] 43 |         assert_eq!(calculate_pool_trade_fee(1_000, (1, 10).into()), Some(100));
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 43 -         assert_eq!(calculate_pool_trade_fee(1_000, (1, 10).into()), Some(100));
[INFO] [stdout] 43 +         assert_eq!(calculate_pool_trade_fee(1_000, (1, 10)), Some(100));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 43 -         assert_eq!(calculate_pool_trade_fee(1_000, (1, 10).into()), Some(100));
[INFO] [stdout] 43 +         assert_eq!(calculate_pool_trade_fee(1_000, <(u32, u32) as Into<_>>::into((1, 10))), Some(100));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:45:57
[INFO] [stdout]    |
[INFO] [stdout] 45 |             calculate_pool_trade_fee(1_000_000_000_000, (1, 10).into()),
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 45 -             calculate_pool_trade_fee(1_000_000_000_000, (1, 10).into()),
[INFO] [stdout] 45 +             calculate_pool_trade_fee(1_000_000_000_000, (1, 10)),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 45 -             calculate_pool_trade_fee(1_000_000_000_000, (1, 10).into()),
[INFO] [stdout] 45 +             calculate_pool_trade_fee(1_000_000_000_000, <(u32, u32) as Into<_>>::into((1, 10))),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let max_fee = (1, 1).into();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 60 -         let max_fee = (1, 1).into();
[INFO] [stdout] 60 +         let max_fee = (1, 1);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 60 -         let max_fee = (1, 1).into();
[INFO] [stdout] 60 +         let max_fee = <(u32, u32) as Into<_>>::into((1, 1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:65:57
[INFO] [stdout]    |
[INFO] [stdout] 65 |         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 1).into()), Some(max_amount));
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 65 -         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 1).into()), Some(max_amount));
[INFO] [stdout] 65 +         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 1)), Some(max_amount));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 65 -         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 1).into()), Some(max_amount));
[INFO] [stdout] 65 +         assert_eq!(calculate_pool_trade_fee(max_amount, <(u32, u32) as Into<_>>::into((1, 1))), Some(max_amount));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:66:52
[INFO] [stdout]    |
[INFO] [stdout] 66 |         assert_eq!(calculate_pool_trade_fee(1_000, (1, 1).into()), Some(1_000));
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 66 -         assert_eq!(calculate_pool_trade_fee(1_000, (1, 1).into()), Some(1_000));
[INFO] [stdout] 66 +         assert_eq!(calculate_pool_trade_fee(1_000, (1, 1)), Some(1_000));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 66 -         assert_eq!(calculate_pool_trade_fee(1_000, (1, 1).into()), Some(1_000));
[INFO] [stdout] 66 +         assert_eq!(calculate_pool_trade_fee(1_000, <(u32, u32) as Into<_>>::into((1, 1))), Some(1_000));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:71:31
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let unrealistic_fee = (1, u32::MAX).into();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 71 -         let unrealistic_fee = (1, u32::MAX).into();
[INFO] [stdout] 71 +         let unrealistic_fee = (1, u32::MAX);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 71 -         let unrealistic_fee = (1, u32::MAX).into();
[INFO] [stdout] 71 +         let unrealistic_fee = <(u32, u32) as Into<_>>::into((1, u32::MAX));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:79:50
[INFO] [stdout]    |
[INFO] [stdout] 79 |             calculate_pool_trade_fee(max_amount, (1, u32::MAX).into()),
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 79 -             calculate_pool_trade_fee(max_amount, (1, u32::MAX).into()),
[INFO] [stdout] 79 +             calculate_pool_trade_fee(max_amount, (1, u32::MAX)),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 79 -             calculate_pool_trade_fee(max_amount, (1, u32::MAX).into()),
[INFO] [stdout] 79 +             calculate_pool_trade_fee(max_amount, <(u32, u32) as Into<_>>::into((1, u32::MAX))),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:83:31
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let unrealistic_fee = (u32::MAX, 1).into();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 83 -         let unrealistic_fee = (u32::MAX, 1).into();
[INFO] [stdout] 83 +         let unrealistic_fee = (u32::MAX, 1);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 83 -         let unrealistic_fee = (u32::MAX, 1).into();
[INFO] [stdout] 83 +         let unrealistic_fee = <(u32, u32) as Into<_>>::into((u32::MAX, 1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:86:57
[INFO] [stdout]    |
[INFO] [stdout] 86 |         assert_eq!(calculate_pool_trade_fee(max_amount, (u32::MAX, 1).into()), None);
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         assert_eq!(calculate_pool_trade_fee(max_amount, (u32::MAX, 1).into()), None);
[INFO] [stdout] 86 +         assert_eq!(calculate_pool_trade_fee(max_amount, (u32::MAX, 1)), None);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 86 -         assert_eq!(calculate_pool_trade_fee(max_amount, (u32::MAX, 1).into()), None);
[INFO] [stdout] 86 +         assert_eq!(calculate_pool_trade_fee(max_amount, <(u32, u32) as Into<_>>::into((u32::MAX, 1))), None);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let zero_fee = (0, 0).into();
[INFO] [stdout]    |                        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 88 -         let zero_fee = (0, 0).into();
[INFO] [stdout] 88 +         let zero_fee = (0, 0);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 88 -         let zero_fee = (0, 0).into();
[INFO] [stdout] 88 +         let zero_fee = <(u32, u32) as Into<_>>::into((0, 0));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:93:57
[INFO] [stdout]    |
[INFO] [stdout] 93 |         assert_eq!(calculate_pool_trade_fee(max_amount, (0, 0).into()), Some(0));
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 93 -         assert_eq!(calculate_pool_trade_fee(max_amount, (0, 0).into()), Some(0));
[INFO] [stdout] 93 +         assert_eq!(calculate_pool_trade_fee(max_amount, (0, 0)), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 93 -         assert_eq!(calculate_pool_trade_fee(max_amount, (0, 0).into()), Some(0));
[INFO] [stdout] 93 +         assert_eq!(calculate_pool_trade_fee(max_amount, <(u32, u32) as Into<_>>::into((0, 0))), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:94:52
[INFO] [stdout]    |
[INFO] [stdout] 94 |         assert_eq!(calculate_pool_trade_fee(1_000, (0, 0).into()), Some(0));
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 94 -         assert_eq!(calculate_pool_trade_fee(1_000, (0, 0).into()), Some(0));
[INFO] [stdout] 94 +         assert_eq!(calculate_pool_trade_fee(1_000, (0, 0)), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 94 -         assert_eq!(calculate_pool_trade_fee(1_000, (0, 0).into()), Some(0));
[INFO] [stdout] 94 +         assert_eq!(calculate_pool_trade_fee(1_000, <(u32, u32) as Into<_>>::into((0, 0))), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:96:57
[INFO] [stdout]    |
[INFO] [stdout] 96 |         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 0).into()), Some(0));
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 96 -         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 0).into()), Some(0));
[INFO] [stdout] 96 +         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 0)), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 96 -         assert_eq!(calculate_pool_trade_fee(max_amount, (1, 0).into()), Some(0));
[INFO] [stdout] 96 +         assert_eq!(calculate_pool_trade_fee(max_amount, <(u32, u32) as Into<_>>::into((1, 0))), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u32, u32)`
[INFO] [stdout]   --> src/fee.rs:97:52
[INFO] [stdout]    |
[INFO] [stdout] 97 |         assert_eq!(calculate_pool_trade_fee(1_000, (0, 1).into()), Some(0));
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 97 -         assert_eq!(calculate_pool_trade_fee(1_000, (0, 1).into()), Some(0));
[INFO] [stdout] 97 +         assert_eq!(calculate_pool_trade_fee(1_000, (0, 1)), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 97 -         assert_eq!(calculate_pool_trade_fee(1_000, (0, 1).into()), Some(0));
[INFO] [stdout] 97 +         assert_eq!(calculate_pool_trade_fee(1_000, <(u32, u32) as Into<_>>::into((0, 1))), Some(0));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `FixedU128<UInt<UInt<UInt<UInt<UInt<_, B0>, B0>, B1>, B1>, B1>>`
[INFO] [stdout]    --> src/transcendental.rs:246:47
[INFO] [stdout]     |
[INFO] [stdout] 246 |         assert_eq!(pow::<S, D>(two, zero), Ok(one.into()));
[INFO] [stdout]     |                                               ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/hydra-dx-math/642a732da6d02e5e/out/hydra_dx_math-642a732da6d02e5e.long-type-18397678696137685418.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 246 -         assert_eq!(pow::<S, D>(two, zero), Ok(one.into()));
[INFO] [stdout] 246 +         assert_eq!(pow::<S, D>(two, zero), Ok(one));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 246 -         assert_eq!(pow::<S, D>(two, zero), Ok(one.into()));
[INFO] [stdout] 246 +         assert_eq!(pow::<S, D>(two, zero), Ok(<fixed::FixedU128<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B1>, typenum::bit::B1>, typenum::bit::B1>> as Into<_>>::into(one)));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `FixedU128<UInt<UInt<UInt<UInt<UInt<_, B0>, B0>, B1>, B1>, B1>>`
[INFO] [stdout]    --> src/transcendental.rs:247:47
[INFO] [stdout]     |
[INFO] [stdout] 247 |         assert_eq!(pow::<S, D>(zero, two), Ok(zero.into()));
[INFO] [stdout]     |                                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/hydra-dx-math/642a732da6d02e5e/out/hydra_dx_math-642a732da6d02e5e.long-type-18397678696137685418.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 247 -         assert_eq!(pow::<S, D>(zero, two), Ok(zero.into()));
[INFO] [stdout] 247 +         assert_eq!(pow::<S, D>(zero, two), Ok(zero));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 247 -         assert_eq!(pow::<S, D>(zero, two), Ok(zero.into()));
[INFO] [stdout] 247 +         assert_eq!(pow::<S, D>(zero, two), Ok(<fixed::FixedU128<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B1>, typenum::bit::B1>, typenum::bit::B1>> as Into<_>>::into(zero)));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `FixedU128<UInt<UInt<UInt<UInt<UInt<_, B0>, B0>, B1>, B1>, B1>>`
[INFO] [stdout]    --> src/transcendental.rs:255:46
[INFO] [stdout]     |
[INFO] [stdout] 255 |         assert_eq!(pow::<S, D>(two, one), Ok(two.into()));
[INFO] [stdout]     |                                              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/hydra-dx-math/642a732da6d02e5e/out/hydra_dx_math-642a732da6d02e5e.long-type-18397678696137685418.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 255 -         assert_eq!(pow::<S, D>(two, one), Ok(two.into()));
[INFO] [stdout] 255 +         assert_eq!(pow::<S, D>(two, one), Ok(two));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 255 -         assert_eq!(pow::<S, D>(two, one), Ok(two.into()));
[INFO] [stdout] 255 +         assert_eq!(pow::<S, D>(two, one), Ok(<fixed::FixedU128<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B1>, typenum::bit::B1>, typenum::bit::B1>> as Into<_>>::into(two)));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hydra-dx-math` (lib test) due to 19 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc", kill_on_drop: false }`
[INFO] [stdout] 1d2f20ae8209e2fd1467f9e1fe81ea5b6f51e16ededfdcf6b7a61761ba6c46bc
