[INFO] fetching crate mg-shamir 1.3.0...
[INFO] checking mg-shamir-1.3.0 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate mg-shamir 1.3.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate mg-shamir 1.3.0
[INFO] finished tweaking crates.io crate mg-shamir 1.3.0
[INFO] tweaked toml for crates.io crate mg-shamir 1.3.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mg-shamir 1.3.0 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "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" "+a5689b034ad287112f709693384a37f1377eb9cc" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 53 packages to highest compatible versions
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding hmac v0.12.1 (available: v0.13.0)
[INFO] [stderr]       Adding itertools v0.11.0 (available: v0.15.0)
[INFO] [stderr]       Adding rand v0.8.8 (available: v0.10.3)
[INFO] [stderr]       Adding sha2 v0.10.9 (available: v0.11.1)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.21)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://gitlab.com/metalgearhq/libshamir/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 | repository = "https://gitlab.com/metalgearhq/libshamir/"
[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: `mg-shamir` (manifest) generated 1 warning
[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] b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6
[INFO] running `Command { std: "docker" "start" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6", 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" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6", 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" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "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:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://gitlab.com/metalgearhq/libshamir/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 | repository = "https://gitlab.com/metalgearhq/libshamir/"
[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: `mg-shamir` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking bitvec v1.1.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand v0.10.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking quickcheck v1.1.0
[INFO] [stderr]     Checking mg-shamir v1.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/share.rs:111:24
[INFO] [stdout]     |
[INFO] [stdout] 111 |               return Err(Error::Mnemonic(format!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 112 | |                 "Incorrect share bit length. Must be a multiple of {}, actual length: {}",
[INFO] [stdout] 113 | |                 8,
[INFO] [stdout] 114 | |                 bp.len(),
[INFO] [stdout] 115 | |             ))
[INFO] [stdout] 116 | |             .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] 115 -             ))
[INFO] [stdout] 116 -             .into());
[INFO] [stdout] 115 +             )));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 111 ~             return Err(<error::Error as Into<_>>::into(Error::Mnemonic(format!(
[INFO] [stdout] 112 |                 "Incorrect share bit length. Must be a multiple of {}, actual length: {}",
[INFO] [stdout] 113 |                 8,
[INFO] [stdout] 114 |                 bp.len(),
[INFO] [stdout] 115 ~             ))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/share.rs:138:24
[INFO] [stdout]     |
[INFO] [stdout] 138 |             return Err(Error::Mnemonic(format!("Unsupported share version: {}", version)).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] 138 -             return Err(Error::Mnemonic(format!("Unsupported share version: {}", version)).into());
[INFO] [stdout] 138 +             return Err(Error::Mnemonic(format!("Unsupported share version: {}", version)));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 138 -             return Err(Error::Mnemonic(format!("Unsupported share version: {}", version)).into());
[INFO] [stdout] 138 +             return Err(<error::Error as Into<_>>::into(Error::Mnemonic(format!("Unsupported share version: {}", version))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |               return Err(Error::Argument(format!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 101 | |                 "Threshold must be between 1 and {}",
[INFO] [stdout] 102 | |                 self.config.max_share_count
[INFO] [stdout] 103 | |             ))
[INFO] [stdout] 104 | |             .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] 103 -             ))
[INFO] [stdout] 104 -             .into());
[INFO] [stdout] 103 +             )));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 100 ~             return Err(<error::Error as Into<_>>::into(Error::Argument(format!(
[INFO] [stdout] 101 |                 "Threshold must be between 1 and {}",
[INFO] [stdout] 102 |                 self.config.max_share_count
[INFO] [stdout] 103 ~             ))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:107:24
[INFO] [stdout]     |
[INFO] [stdout] 107 |               return Err(Error::Argument(format!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 108 | |                 "Share count with given member threshold must be between {} and {}",
[INFO] [stdout] 109 | |                 threshold, self.config.max_share_count
[INFO] [stdout] 110 | |             ))
[INFO] [stdout] 111 | |             .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] 110 -             ))
[INFO] [stdout] 111 -             .into());
[INFO] [stdout] 110 +             )));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 107 ~             return Err(<error::Error as Into<_>>::into(Error::Argument(format!(
[INFO] [stdout] 108 |                 "Share count with given member threshold must be between {} and {}",
[INFO] [stdout] 109 |                 threshold, self.config.max_share_count
[INFO] [stdout] 110 ~             ))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 Error::Argument("Secret must be at least 16 bytes in length".to_string()).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] 115 -                 Error::Argument("Secret must be at least 16 bytes in length".to_string()).into(),
[INFO] [stdout] 115 +                 Error::Argument("Secret must be at least 16 bytes in length".to_string()),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 115 -                 Error::Argument("Secret must be at least 16 bytes in length".to_string()).into(),
[INFO] [stdout] 115 +                 <error::Error as Into<_>>::into(Error::Argument("Secret must be at least 16 bytes in length".to_string())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |             return Err(Error::Value("Fragment set must not be empty.".to_string()).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] 175 -             return Err(Error::Value("Fragment set must not be empty.".to_string()).into());
[INFO] [stdout] 175 +             return Err(Error::Value("Fragment set must not be empty.".to_string()));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 175 -             return Err(Error::Value("Fragment set must not be empty.".to_string()).into());
[INFO] [stdout] 175 +             return Err(<error::Error as Into<_>>::into(Error::Value("Fragment set must not be empty.".to_string())));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:181:24
[INFO] [stdout]     |
[INFO] [stdout] 181 |               return Err(Error::Value(format!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 182 | |                 "Not enough fragments to recover secret (required: {}, got: {})",
[INFO] [stdout] 183 | |                 proto_share.member_threshold,
[INFO] [stdout] 184 | |                 shares.len()
[INFO] [stdout] 185 | |             ))
[INFO] [stdout] 186 | |             .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] 185 -             ))
[INFO] [stdout] 186 -             .into());
[INFO] [stdout] 185 +             )));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 181 ~             return Err(<error::Error as Into<_>>::into(Error::Value(format!(
[INFO] [stdout] 182 |                 "Not enough fragments to recover secret (required: {}, got: {})",
[INFO] [stdout] 183 |                 proto_share.member_threshold,
[INFO] [stdout] 184 |                 shares.len()
[INFO] [stdout] 185 ~             ))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |                   return Err(Error::Mnemonic(
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 212 | |                     "Invalid set of fragments. All fragment values must have the same length"
[INFO] [stdout] 213 | |                         .to_string(),
[INFO] [stdout] 214 | |                 )
[INFO] [stdout] 215 | |                 .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] 214 -                 )
[INFO] [stdout] 215 -                 .into());
[INFO] [stdout] 214 +                 ));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 211 ~                 return Err(<error::Error as Into<_>>::into(Error::Mnemonic(
[INFO] [stdout] 212 |                     "Invalid set of fragments. All fragment values must have the same length"
[INFO] [stdout] 213 |                         .to_string(),
[INFO] [stdout] 214 ~                 )));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/shamir/splitter.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             return Err(Error::Digest("Invalid digest of the shared secret".to_string()).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] 259 -             return Err(Error::Digest("Invalid digest of the shared secret".to_string()).into());
[INFO] [stdout] 259 +             return Err(Error::Digest("Invalid digest of the shared secret".to_string()));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 259 -             return Err(Error::Digest("Invalid digest of the shared secret".to_string()).into());
[INFO] [stdout] 259 +             return Err(<error::Error as Into<_>>::into(Error::Digest("Invalid digest of the shared secret".to_string())));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]   --> src/util/bitpacker.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |             return Err(Error::BitVec("number of bits to pack must be <= 32".to_string()).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] 78 -             return Err(Error::BitVec("number of bits to pack must be <= 32".to_string()).into());
[INFO] [stdout] 78 +             return Err(Error::BitVec("number of bits to pack must be <= 32".to_string()));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 78 -             return Err(Error::BitVec("number of bits to pack must be <= 32".to_string()).into());
[INFO] [stdout] 78 +             return Err(<error::Error as Into<_>>::into(Error::BitVec("number of bits to pack must be <= 32".to_string())));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]   --> src/util/bitpacker.rs:93:24
[INFO] [stdout]    |
[INFO] [stdout] 93 |             return Err(Error::BitVec("number of bits to pack must be <= 16".to_string()).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] 93 -             return Err(Error::BitVec("number of bits to pack must be <= 16".to_string()).into());
[INFO] [stdout] 93 +             return Err(Error::BitVec("number of bits to pack must be <= 16".to_string()));
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 93 -             return Err(Error::BitVec("number of bits to pack must be <= 16".to_string()).into());
[INFO] [stdout] 93 +             return Err(<error::Error as Into<_>>::into(Error::BitVec("number of bits to pack must be <= 16".to_string())));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/util/bitpacker.rs:108:24
[INFO] [stdout]     |
[INFO] [stdout] 108 |             return Err(Error::BitVec("number of bits to pack must be <= 8".to_string()).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] 108 -             return Err(Error::BitVec("number of bits to pack must be <= 8".to_string()).into());
[INFO] [stdout] 108 +             return Err(Error::BitVec("number of bits to pack must be <= 8".to_string()));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 108 -             return Err(Error::BitVec("number of bits to pack must be <= 8".to_string()).into());
[INFO] [stdout] 108 +             return Err(<error::Error as Into<_>>::into(Error::BitVec("number of bits to pack must be <= 8".to_string())));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `error::Error`
[INFO] [stdout]    --> src/util/bitpacker.rs:178:24
[INFO] [stdout]     |
[INFO] [stdout] 178 |             return Err(Error::Padding.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] 178 -             return Err(Error::Padding.into());
[INFO] [stdout] 178 +             return Err(Error::Padding);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 178 -             return Err(Error::Padding.into());
[INFO] [stdout] 178 +             return Err(<error::Error as Into<_>>::into(Error::Padding));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mg-shamir` (lib) due to 13 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6", kill_on_drop: false }`
[INFO] [stdout] b718b010ddd87ac1d4f1dd990d893a8dd61c58f4e15b5905db8d5d8ba1930ef6
