[INFO] cloning repository https://github.com/Lucy-dot-dot/invite-tracker [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lucy-dot-dot/invite-tracker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLucy-dot-dot%2Finvite-tracker", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLucy-dot-dot%2Finvite-tracker'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8bc79f5751313ea15b8838fb894772252b86977b [INFO] checking Lucy-dot-dot/invite-tracker against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLucy-dot-dot%2Finvite-tracker" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Lucy-dot-dot/invite-tracker [INFO] finished tweaking git repo https://github.com/Lucy-dot-dot/invite-tracker [INFO] tweaked toml for git repo https://github.com/Lucy-dot-dot/invite-tracker written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Lucy-dot-dot/invite-tracker on toolchain 52995a223f2919dd3e2e427231db90a257350ded [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Lucy-dot-dot/invite-tracker already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4 [INFO] running `Command { std: "docker" "start" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4", 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" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4", 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" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.12 [INFO] [stderr] Compiling syn v3.0.5 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling jobserver v0.1.35 [INFO] [stderr] Checking mio v1.2.3 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling aws-lc-rs v1.18.1 [INFO] [stderr] Checking futures-util v0.3.34 [INFO] [stderr] Checking indexmap v2.14.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.22 [INFO] [stderr] Compiling cmov v0.5.4 [INFO] [stderr] Checking hybrid-array v0.4.14 [INFO] [stderr] Compiling rustls v0.23.43 [INFO] [stderr] Compiling ctutils v0.4.2 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Compiling cc v1.4.5 [INFO] [stderr] Compiling cpufeatures v0.3.1 [INFO] [stderr] Compiling futures-sink v0.3.34 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling thiserror v2.0.20 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling tinyvec v1.13.2 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling tokio v1.53.1 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Compiling zmij v1.0.23 [INFO] [stderr] Compiling futures-io v0.3.34 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling event-listener v5.4.2 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Checking block-buffer v0.12.1 [INFO] [stderr] Checking crypto-common v0.2.2 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Compiling chacha20 v0.10.2 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling crossbeam-queue v0.3.13 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling uuid v1.26.0 [INFO] [stderr] Compiling arrayvec v0.7.8 [INFO] [stderr] Checking bitflags v2.13.1 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling hashlink v0.11.1 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Checking digest v0.11.3 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling to-arraystring v0.2.2 [INFO] [stderr] Compiling rand v0.10.2 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Checking rand v0.9.5 [INFO] [stderr] Compiling futures-channel v0.3.34 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Checking ipnet v2.12.1 [INFO] [stderr] Compiling whoami v2.1.3 [INFO] [stderr] Compiling crc32fast v1.5.1 [INFO] [stderr] Checking rustls-native-certs v0.8.4 [INFO] [stderr] Checking hmac v0.13.0 [INFO] [stderr] Compiling md-5 v0.11.0 [INFO] [stderr] Compiling sha2 v0.11.0 [INFO] [stderr] Checking log v0.4.34 [INFO] [stderr] Compiling hkdf v0.13.0 [INFO] [stderr] Checking sha1 v0.10.7 [INFO] [stderr] Compiling aws-lc-sys v0.45.0 [INFO] [stderr] Compiling bytestring v1.5.1 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling mini-moka v0.10.3 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Checking destructure_traitobject v0.2.0 [INFO] [stderr] Checking unsafe-any-ors v1.0.0 [INFO] [stderr] Checking miniz_oxide v0.9.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Compiling time-macros v0.2.32 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking crossbeam-channel v0.5.16 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking http-body-util v0.1.5 [INFO] [stderr] Checking zlib-rs v0.6.7 [INFO] [stderr] Compiling serenity v0.12.5 (https://github.com/serenity-rs/serenity?branch=next#98ec7422) [INFO] [stderr] Checking tagptr v0.2.0 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking triomphe v0.1.16 [INFO] [stderr] Checking winnow v1.0.4 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Checking chrono v0.4.45 [INFO] [stderr] Checking toml_parser v1.1.3+spec-1.1.0 [INFO] [stderr] Checking futures v0.3.34 [INFO] [stderr] Checking typemap-ors v1.0.0 [INFO] [stderr] Checking serde_spanned v1.1.1 [INFO] [stderr] Checking toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Checking thread-id v5.1.0 [INFO] [stderr] Checking mock_instant v0.6.1 [INFO] [stderr] Checking toml_writer v1.1.2+spec-1.1.0 [INFO] [stderr] Checking unicode-segmentation v1.13.3 [INFO] [stderr] Checking humantime v2.4.0 [INFO] [stderr] Checking log-mdc v0.1.0 [INFO] [stderr] Checking toml v1.1.5+spec-1.1.0 [INFO] [stderr] Checking stringmetrics v2.2.2 [INFO] [stderr] Checking time v0.3.55 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling tokio-macros v2.7.2 [INFO] [stderr] Compiling thiserror-impl v2.0.20 [INFO] [stderr] Compiling ref-cast-impl v1.0.27 [INFO] [stderr] Compiling async-trait v0.1.92 [INFO] [stderr] Checking flate2 v1.1.10 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling typenum_mappings v0.1.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling aformat-macros v0.1.6 [INFO] [stderr] Checking ref-cast v1.0.27 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling tokio-stream v0.1.19 [INFO] [stderr] Checking zerofrom v0.1.8 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Compiling zerovec v0.11.8 [INFO] [stderr] Compiling zerotrie v0.2.5 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling bool_to_bitflags v0.1.3 [INFO] [stderr] Checking tinystr v0.8.4 [INFO] [stderr] Checking potential_utf v0.1.6 [INFO] [stderr] Checking icu_collections v2.3.0 [INFO] [stderr] Checking icu_locale_core v2.3.0 [INFO] [stderr] Checking smallvec v1.16.0 [INFO] [stderr] Checking either v1.18.0 [INFO] [stderr] Checking serde_cow v0.1.2 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking extract_map v0.3.1 [INFO] [stderr] Checking nonmax v0.5.5 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking dashmap v6.2.1 [INFO] [stderr] Checking small-fixed-array v0.4.11 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking aformat v0.1.8 [INFO] [stderr] Checking icu_provider v2.3.1 [INFO] [stderr] Checking log4rs v1.4.0 [INFO] [stderr] Checking icu_properties v2.3.0 [INFO] [stderr] Checking icu_normalizer v2.3.0 [INFO] [stderr] Checking tokio-util v0.7.19 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking h2 v0.4.19 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking sqlx-core v0.9.0 [INFO] [stderr] Checking tower-http v0.6.11 [INFO] [stderr] Checking sqlx-postgres v0.9.0 [INFO] [stderr] Checking hyper v1.11.1 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking rustls-webpki v0.103.15 [INFO] [stderr] Compiling sqlx-macros-core v0.9.0 [INFO] [stderr] Compiling sqlx-macros v0.9.0 [INFO] [stderr] Checking sqlx v0.9.0 [INFO] [stderr] Checking tokio-rustls v0.26.5 [INFO] [stderr] Checking rustls-platform-verifier v0.7.0 [INFO] [stderr] Checking tungstenite v0.28.0 [INFO] [stderr] Checking hyper-rustls v0.27.9 [INFO] [stderr] Checking reqwest v0.13.4 [INFO] [stderr] Checking tokio-tungstenite v0.28.0 [INFO] [stderr] Checking discord-logging v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | format!("- **Timeout until:** ➜ ").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: `#[deny(self_type_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:422:34 [INFO] [stdout] | [INFO] [stdout] 422 | (None, Some(new)) => format!("- **Timeout until:** ").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | (Some(old), None) => format!("- **Timeout until:** *was* ").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 79 | format!("- **{NAME}:** `{new}{UNIT}`").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 81 | (Some(old), None) => format!("- **{NAME}:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 82 | (Some(old), Some(0)) => format!("- **{NAME} disabled:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:83:39 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 83 | (Some(old), Some(new)) => format!("- **{NAME}:** `{old}` ➜ `{new}{UNIT}`",).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 79 | format!("- **{NAME}:** `{new}{UNIT}`").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 81 | (Some(old), None) => format!("- **{NAME}:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 82 | (Some(old), Some(0)) => format!("- **{NAME} disabled:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:83:39 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 83 | (Some(old), Some(new)) => format!("- **{NAME}:** `{old}` ➜ `{new}{UNIT}`",).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 141 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:143:34 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 143 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 145 | format!("- **{NAME} disabled:** *was* `{}`", op(old)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 148 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 141 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:143:34 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 143 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 145 | format!("- **{NAME} disabled:** *was* `{}`", op(old)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 148 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | format!("- **Timeout until:** ➜ ").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: `#[deny(self_type_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:422:34 [INFO] [stdout] | [INFO] [stdout] 422 | (None, Some(new)) => format!("- **Timeout until:** ").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/member.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | (Some(old), None) => format!("- **Timeout until:** *was* ").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:177:38 [INFO] [stdout] | [INFO] [stdout] 177 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:178:39 [INFO] [stdout] | [INFO] [stdout] 178 | Change::Topic { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | Change::RtcRegion { old, new } => format_string_change!("RTC region", old, new), [INFO] [stdout] | --------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:417:38 [INFO] [stdout] | [INFO] [stdout] 417 | Change::Nick { old, new } => format_string_change!("Nickname", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | Change::UnicodeEmoji { old, new } => format_string_change!("Icon", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:135:38 [INFO] [stdout] | [INFO] [stdout] 135 | Change::Name { old, new } => format_string_change!("Name", old, new), [INFO] [stdout] | --------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | Change::Tags { old, new } => format_string_change!("Emoji", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:163:39 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 163 | (Some(old), Some(new)) => format!("- **{NAME}:** \"{old}\" ➜ \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:164:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 164 | (None, Some(new)) => format!("- **{NAME}:** \"{new}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 156 | macro_rules! format_string_change { [INFO] [stdout] ... [INFO] [stdout] 165 | (Some(old), None) => format!("- **{NAME}:** *was* \"{old}\"").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/sticker.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | Change::Description { old, new } => format_string_change!("Description", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/automod.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | Change::Enabled { old, new } => format_boolean_change!("Enabled", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:179:38 [INFO] [stdout] | [INFO] [stdout] 179 | Change::Nsfw { old, new } => format_boolean_change!("NSFW", old, new), [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:180:40 [INFO] [stdout] | [INFO] [stdout] 180 | Change::Locked { old, new } => format_boolean_change!("Locked", old, new), [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:181:42 [INFO] [stdout] | [INFO] [stdout] 181 | Change::Archived { old, new } => format_boolean_change!("Archived", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:182:43 [INFO] [stdout] | [INFO] [stdout] 182 | Change::Invitable { old, new } => format_boolean_change!("Inviteable", old, new), [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:415:38 [INFO] [stdout] | [INFO] [stdout] 415 | Change::Mute { old, new } => format_boolean_change!("Muted", old, new), [INFO] [stdout] | ----------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `discord-logging` (lib) due to 85 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/member.rs:416:38 [INFO] [stdout] | [INFO] [stdout] 416 | Change::Deaf { old, new } => format_boolean_change!("Deafened", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | Change::Hoist { old, new } => format_boolean_change!("Hoisted", old, new), [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:189:37 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 189 | (Some(_), Some(new)) => format!("- **{NAME}:** `{new}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 190 | (None, Some(true)) => format!("- **{NAME}:** `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:191:35 [INFO] [stdout] | [INFO] [stdout] 182 | macro_rules! format_boolean_change { [INFO] [stdout] ... [INFO] [stdout] 191 | (Some(true), None) => format!("- **{NAME}:** *was* `true`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:77:45 [INFO] [stdout] | [INFO] [stdout] 77 | Change::Mentionable { old, new } => format_boolean_change!("Pingable", old, new), [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 79 | format!("- **{NAME}:** `{new}{UNIT}`").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 81 | (Some(old), None) => format!("- **{NAME}:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 82 | (Some(old), Some(0)) => format!("- **{NAME} disabled:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:83:39 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 83 | (Some(old), Some(new)) => format!("- **{NAME}:** `{old}` ➜ `{new}{UNIT}`",).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format_numeric_change!("User limit", "", old.map(|v| v.get()), new.map(|v| v.get())) [INFO] [stdout] | ------------------------------------------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 79 | format!("- **{NAME}:** `{new}{UNIT}`").into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 81 | (Some(old), None) => format!("- **{NAME}:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 82 | (Some(old), Some(0)) => format!("- **{NAME} disabled:** *was* `{old}{UNIT}`").into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:83:39 [INFO] [stdout] | [INFO] [stdout] 68 | macro_rules! format_numeric_change { [INFO] [stdout] ... [INFO] [stdout] 83 | (Some(old), Some(new)) => format!("- **{NAME}:** `{old}` ➜ `{new}{UNIT}`",).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | Change::RateLimitPerUser { old, new } => format_numeric_change!("Slowmode", "s", old, new), [INFO] [stdout] | ------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 141 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:143:34 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 143 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 145 | format!("- **{NAME} disabled:** *was* `{}`", op(old)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 148 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | / format_numeric_change_operation!("Archive duration", old, new, |v| format!( [INFO] [stdout] 187 | | "`{}h`", [INFO] [stdout] 188 | | v / 60 [INFO] [stdout] 189 | | )) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 141 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:143:34 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 143 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 145 | format!("- **{NAME} disabled:** *was* `{}`", op(old)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 130 | macro_rules! format_numeric_change_operation { [INFO] [stdout] ... [INFO] [stdout] 148 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | format_numeric_change_operation!("Bitrate", old, new, |v| format!("`{}kbps`", v / 1000)) [INFO] [stdout] | ---------------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | / format_generic_change!("Video quality", old, new, |&q| match q { [INFO] [stdout] 209 | | VideoQualityMode::Auto => "`auto`", [INFO] [stdout] 210 | | VideoQualityMode::Full => "`720p`", [INFO] [stdout] 211 | | _ => "`unknown", [INFO] [stdout] 212 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/channel.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | Change::Type { old, new } => format_generic_change!("Type", old, new, format_channel_type), [INFO] [stdout] | ------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 99 | format!("- **{NAME}:** `{}`", op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 101 | (Some(old), None) => format!("- **{NAME}:** *was* `{}`", op(old)).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/messages/utils.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 90 | macro_rules! format_generic_change { [INFO] [stdout] ... [INFO] [stdout] 103 | format!("- **{NAME}:** `{}` ➜ `{}`", op(old), op(new)).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/messages/roles.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | format_generic_change!("Colour", old, new, format_role_colours) [INFO] [stdout] | --------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: you can instead use the fully-qualified path `::into(val) to avoid triggering this lint [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `discord-logging` (lib test) due to 85 previous errors [INFO] running `Command { std: "docker" "inspect" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4", kill_on_drop: false }` [INFO] [stdout] 55ea1e3619487665f4adbacb79f704178f44a4032534c8fe64c209723f4a4fb4