[INFO] fetching crate mail-core 0.6.2... [INFO] linting mail-core-0.6.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate mail-core 0.6.2 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate mail-core 0.6.2 [INFO] finished tweaking crates.io crate mail-core 0.6.2 [INFO] tweaked toml for crates.io crate mail-core 0.6.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate mail-core 0.6.2 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 94 packages to latest compatible versions [INFO] [stderr] Adding futures v0.1.31 (available: v0.3.32) [INFO] [stderr] Adding log v0.3.9 (available: v0.4.29) [INFO] [stderr] Adding rand v0.3.23 (available: v0.10.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded quoted_printable v0.4.8 [INFO] [stderr] Downloaded safemem v0.2.0 [INFO] [stderr] Downloaded soft-ascii-string v1.1.0 [INFO] [stderr] Downloaded checked_command v0.2.4 [INFO] [stderr] Downloaded media-type-impl-utils v0.3.0-unstable [INFO] [stderr] Downloaded lut v0.1.0-unstable [INFO] [stderr] Downloaded futures-cpupool v0.1.8 [INFO] [stderr] Downloaded vec-drain-where v1.0.1 [INFO] [stderr] Downloaded vec1 v1.12.1 [INFO] [stderr] Downloaded total-order-multi-map v0.4.6 [INFO] [stderr] Downloaded base64 v0.6.0 [INFO] [stderr] Downloaded mail-headers v0.6.6 [INFO] [stderr] Downloaded mail-internals v0.2.3 [INFO] [stderr] Downloaded quoted-string v0.6.1 [INFO] [stderr] Downloaded media-type v0.4.0-unstable [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 33acd426083bfe5fd012a3c5c277a1dcc538e23dbb874472bc65fdc364cc5705 [INFO] running `Command { std: "docker" "start" "-a" "33acd426083bfe5fd012a3c5c277a1dcc538e23dbb874472bc65fdc364cc5705", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "33acd426083bfe5fd012a3c5c277a1dcc538e23dbb874472bc65fdc364cc5705", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "33acd426083bfe5fd012a3c5c277a1dcc538e23dbb874472bc65fdc364cc5705", kill_on_drop: false }` [INFO] [stdout] 33acd426083bfe5fd012a3c5c277a1dcc538e23dbb874472bc65fdc364cc5705 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 26d4522773456661ef72c9741751535549def3e65a1dec8ff27f41976ec2e442 [INFO] running `Command { std: "docker" "start" "-a" "26d4522773456661ef72c9741751535549def3e65a1dec8ff27f41976ec2e442", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Checking lazy_static v0.2.11 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking gimli v0.32.3 [INFO] [stderr] Checking tinyvec v1.11.0 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking lut v0.1.0-unstable [INFO] [stderr] Checking percent-encoding v1.0.1 [INFO] [stderr] Checking rustc-demangle v0.1.27 [INFO] [stderr] Checking quoted-string v0.6.1 [INFO] [stderr] Checking matches v0.1.10 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking media-type-impl-utils v0.3.0-unstable [INFO] [stderr] Checking safemem v0.2.0 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Checking base64 v0.6.0 [INFO] [stderr] Checking media-type v0.4.0-unstable [INFO] [stderr] Checking vec-drain-where v1.0.1 [INFO] [stderr] Checking quoted_printable v0.4.8 [INFO] [stderr] Checking vec1 v1.12.1 [INFO] [stderr] Checking soft-ascii-string v1.1.0 [INFO] [stderr] Compiling checked_command v0.2.4 [INFO] [stderr] Checking idna v0.1.5 [INFO] [stderr] Checking total-order-multi-map v0.4.6 [INFO] [stderr] Checking owning_ref v0.4.1 [INFO] [stderr] Checking futures v0.1.31 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking serde_test v1.0.177 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking futures-cpupool v0.1.8 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking addr2line v0.25.1 [INFO] [stderr] Checking backtrace v0.3.76 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking mail-internals v0.2.3 [INFO] [stderr] Checking mail-headers v0.6.6 [INFO] [stderr] Checking mail-core v0.6.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/default_impl/mod.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | #[cfg(all(feature="default_impl_cpupool"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `feature="default_impl_cpupool"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] = note: `#[warn(clippy::non_minimal_cfg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/utils.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub type SendBoxFuture = Box + Send + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub type SendBoxFuture = Box + Send + 'static>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:78:32 [INFO] [stdout] | [INFO] [stdout] 78 | fn cause(&self) -> Option<&Fail> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 78 | fn cause(&self) -> Option<&dyn Fail> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/default_impl/mod.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | #[cfg(all(feature="default_impl_cpupool"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `feature="default_impl_cpupool"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] = note: `#[warn(clippy::non_minimal_cfg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/mail.rs:885:37 [INFO] [stdout] | [INFO] [stdout] 885 | let provided_date = Utc.ymd(1992, 5, 25).and_hms(23, 41, 12); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/mail.rs:885:54 [INFO] [stdout] | [INFO] [stdout] 885 | let provided_date = Utc.ymd(1992, 5, 25).and_hms(23, 41, 12); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mail.rs:600:17 [INFO] [stdout] | [INFO] [stdout] 600 | let mut headers: &mut HeaderMap = headers; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/utils.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub type SendBoxFuture = Box + Send + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub type SendBoxFuture = Box + Send + 'static>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssertDebug` is never used [INFO] [stdout] --> src/mail.rs:677:11 [INFO] [stdout] | [INFO] [stdout] 677 | trait AssertDebug: Debug {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssertSend` is never used [INFO] [stdout] --> src/mail.rs:678:11 [INFO] [stdout] | [INFO] [stdout] 678 | trait AssertSend: Send {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssertSync` is never used [INFO] [stdout] --> src/mail.rs:679:11 [INFO] [stdout] | [INFO] [stdout] 679 | trait AssertSync: Sync {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/iri.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let split_pos = buffer.bytes().position(|b| b == b':') [INFO] [stdout] | _________________________^ [INFO] [stdout] 75 | | //TODO error type [INFO] [stdout] 76 | | .ok_or_else(|| InvalidIRIScheme)?; [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 76 - .ok_or_else(|| InvalidIRIScheme)?; [INFO] [stdout] 76 + .ok_or(InvalidIRIScheme)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/iri.rs:158:1 [INFO] [stdout] | [INFO] [stdout] 158 | impl Into for IRI { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 158 ~ impl From for String { [INFO] [stdout] 159 ~ fn from(val: IRI) -> Self { [INFO] [stdout] 160 ~ val.iri [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mime.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | /// == 78 chars) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 43 | /// == 78 chars) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/context.rs:192:41 [INFO] [stdout] | [INFO] [stdout] 192 | let fut = ctx.load_resource(&source) [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/resource/source.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for UseMediaType { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | UseMediaType::Auto [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 54 + #[derive(Default)] [INFO] [stdout] 55 | pub enum UseMediaType { [INFO] [stdout] 56 | /// Sniff content type if no content type was given from any other place. [INFO] [stdout] 57 ~ #[default] [INFO] [stdout] 58 ~ Auto, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/resource/data.rs:270:1 [INFO] [stdout] | [INFO] [stdout] 270 | / impl Default for TransferEncodingHint { [INFO] [stdout] 271 | | fn default() -> Self { [INFO] [stdout] 272 | | TransferEncodingHint::UseBase64 [INFO] [stdout] 273 | | } [INFO] [stdout] 274 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 247 + #[derive(Default)] [INFO] [stdout] 248 | pub enum TransferEncodingHint { [INFO] [stdout] 249 | /// Use Base64 encoding. [INFO] [stdout] 250 ~ #[default] [INFO] [stdout] 251 ~ UseBase64, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resource/loading.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | visitor(&key, resource) [INFO] [stdout] | ^^^^ help: change this to: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/loading.rs:144:20 [INFO] [stdout] | [INFO] [stdout] 144 | if let &Resource::Source(ref source) = resource { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 144 - if let &Resource::Source(ref source) = resource { [INFO] [stdout] 144 + if let Resource::Source(source) = resource { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/resource/loading.rs:181:57 [INFO] [stdout] | [INFO] [stdout] 181 | for (key, new_resource) in keys.into_iter().zip(loaded.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 181 - for (key, new_resource) in keys.into_iter().zip(loaded.into_iter()) { [INFO] [stdout] 181 + for (key, new_resource) in keys.into_iter().zip(loaded) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/resource/mod.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | / match self { [INFO] [stdout] 188 | | &Resource::Source(..) => None, [INFO] [stdout] 189 | | &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 190 | | &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] 191 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 187 ~ match *self { [INFO] [stdout] 188 ~ Resource::Source(..) => None, [INFO] [stdout] 189 ~ Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 190 ~ Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 189 - &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 189 + Resource::Data(data) => Some(data.content_id()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/mod.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 190 - &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] 190 + Resource::EncData(enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/encode.rs:42:18 [INFO] [stdout] | [INFO] [stdout] 42 | _encode_mail(&*mail, top, encoder) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 42 - _encode_mail(&*mail, top, encoder) [INFO] [stdout] 42 + _encode_mail(mail, top, encoder) [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 42 | _encode_mail(&**mail, top, encoder) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/encode.rs:59:20 [INFO] [stdout] | [INFO] [stdout] 59 | encode_headers(&mail, top, encoder)?; [INFO] [stdout] | ^^^^^ help: change this to: `mail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/encode.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | encode_mail_part(&mail, encoder)?; [INFO] [stdout] | ^^^^^ help: change this to: `mail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:78:6 [INFO] [stdout] | [INFO] [stdout] 78 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encode.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let ignored_header = !top && [INFO] [stdout] | ______________________________^ [INFO] [stdout] 92 | | !(name_as_str.starts_with("Content-") [INFO] [stdout] 93 | | || name_as_str.starts_with("X-") ); [INFO] [stdout] | |__________________________________________________^ help: try: `!(top || name_as_str.starts_with("Content-") || name_as_str.starts_with("X-"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:120:6 [INFO] [stdout] | [INFO] [stdout] 120 | ) -> Result<(), EncodingError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:122:22 [INFO] [stdout] | [INFO] [stdout] 122 | let res = (|| -> Result<(), EncodingError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | -> Result<(), MailError> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:78:32 [INFO] [stdout] | [INFO] [stdout] 78 | fn cause(&self) -> Option<&Fail> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 78 | fn cause(&self) -> Option<&dyn Fail> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encode.rs:155:16 [INFO] [stdout] | [INFO] [stdout] 155 | if hidden_text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!hidden_text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | encoder.write_header_line(|handle| { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 184 | | handle.write_char(minus)?; [INFO] [stdout] 185 | | handle.write_char(minus)?; [INFO] [stdout] 186 | | handle.write_str(&*boundary) [INFO] [stdout] 187 | | })?; [INFO] [stdout] | |_________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/encode.rs:186:38 [INFO] [stdout] | [INFO] [stdout] 186 | handle.write_str(&*boundary) [INFO] [stdout] | ^^^^^^^^^^ help: try: `&boundary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encode.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | if bodies.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bodies.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:192:43 [INFO] [stdout] | [INFO] [stdout] 192 | encoder.write_header_line(|handle| { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 193 | | handle.write_char(minus)?; [INFO] [stdout] 194 | | handle.write_char(minus)?; [INFO] [stdout] 195 | | handle.write_str(&*boundary)?; [INFO] [stdout] 196 | | handle.write_char(minus)?; [INFO] [stdout] 197 | | handle.write_char(minus) [INFO] [stdout] 198 | | })?; [INFO] [stdout] | |_________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/encode.rs:195:38 [INFO] [stdout] | [INFO] [stdout] 195 | handle.write_str(&*boundary)?; [INFO] [stdout] | ^^^^^^^^^^ help: try: `&boundary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:321:46 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn generally_validate_mail(&self) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/mail.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | / match self.body() { [INFO] [stdout] 328 | | &MailBody::SingleBody { .. } => {}, [INFO] [stdout] 329 | | &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] 330 | | for body in bodies { [INFO] [stdout] ... | [INFO] [stdout] 334 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 327 ~ match *self.body() { [INFO] [stdout] 328 ~ MailBody::SingleBody { .. } => {}, [INFO] [stdout] 329 ~ MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/mail.rs:329:13 [INFO] [stdout] | [INFO] [stdout] 329 | &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 329 - &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] 329 + MailBody::MultipleBodies { bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:513:59 [INFO] [stdout] | [INFO] [stdout] 513 | pub fn encode(&self, encoder: &mut EncodingBuffer) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:518:61 [INFO] [stdout] | [INFO] [stdout] 518 | pub fn encode_into_bytes(&self, mail_type: MailType) -> Result, MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/mail.rs:571:9 [INFO] [stdout] | [INFO] [stdout] 571 | &Resource::EncData(ref ed) => ed, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 571 - &Resource::EncData(ref ed) => ed, [INFO] [stdout] 571 + Resource::EncData(ed) => ed, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/mail.rs:588:5 [INFO] [stdout] | [INFO] [stdout] 588 | / match body { [INFO] [stdout] 589 | | &mut MailBody::SingleBody { ref mut body } => { [INFO] [stdout] 590 | | let data = assume_encoded(body); [INFO] [stdout] ... | [INFO] [stdout] 614 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 588 ~ match *body { [INFO] [stdout] 589 ~ MailBody::SingleBody { ref mut body } => { [INFO] [stdout] 590 | let data = assume_encoded(body); [INFO] [stdout] ... [INFO] [stdout] 598 | }, [INFO] [stdout] 599 ~ MailBody::MultipleBodies { ref mut bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/mail.rs:586:88 [INFO] [stdout] | [INFO] [stdout] 586 | fn recursive_auto_gen_headers(mail: &mut Mail, boundary_count: &mut usize, ctx: &C) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/mail.rs:611:70 [INFO] [stdout] | [INFO] [stdout] 611 | recursive_auto_gen_headers(sub_mail, boundary_count, ctx); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:618:8 [INFO] [stdout] | [INFO] [stdout] 618 | -> Result<(), MailError> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/mail.rs:658:1 [INFO] [stdout] | [INFO] [stdout] 658 | impl Into for EncodableMail { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 658 ~ impl From for Mail { [INFO] [stdout] 659 ~ fn from(val: EncodableMail) -> Self { [INFO] [stdout] 660 ~ let EncodableMail(mail) = val; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/mail.rs:739:24 [INFO] [stdout] | [INFO] [stdout] 739 | if let &Resource::Data(ref body) = body { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 739 - if let &Resource::Data(ref body) = body { [INFO] [stdout] 739 + if let Resource::Data(body) = body { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] ::: src/mail.rs:753:9 [INFO] [stdout] | [INFO] [stdout] 753 | / test!(insert_header_set_a_header, { [INFO] [stdout] 754 | | let ctx = test_context(); [INFO] [stdout] 755 | | let mut mail = Mail::plain_text("r0", &ctx); [INFO] [stdout] 756 | | mail.insert_header(Subject::auto_body("hy")?); [INFO] [stdout] 757 | | assert!(mail.headers().contains(Subject)); [INFO] [stdout] 758 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: src/macros.rs:45:37 [INFO] [stdout] | [INFO] [stdout] 45 | let catch_block = || -> Result<(), ::error::MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: this warning originates in the macro `test` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] ::: src/mail.rs:762:9 [INFO] [stdout] | [INFO] [stdout] 762 | / test!(insert_headers_sets_all_headers, { [INFO] [stdout] 763 | | let ctx = test_context(); [INFO] [stdout] 764 | | let mut mail = Mail::plain_text("r0", &ctx); [INFO] [stdout] 765 | | mail.insert_headers(headers! { [INFO] [stdout] ... | [INFO] [stdout] 771 | | assert!(mail.headers().contains(Comments)); [INFO] [stdout] 772 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: src/macros.rs:45:37 [INFO] [stdout] | [INFO] [stdout] 45 | let catch_block = || -> Result<(), ::error::MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: this warning originates in the macro `test` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] ::: src/mail.rs:883:9 [INFO] [stdout] | [INFO] [stdout] 883 | / test!(does_not_override_date_if_set, { [INFO] [stdout] 884 | | let ctx = test_context(); [INFO] [stdout] 885 | | let provided_date = Utc.ymd(1992, 5, 25).and_hms(23, 41, 12); [INFO] [stdout] 886 | | let mut mail = Mail::plain_text("r9", &ctx); [INFO] [stdout] ... | [INFO] [stdout] 899 | | assert_eq!(&**used_date.body(), &provided_date); [INFO] [stdout] 900 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: src/macros.rs:45:37 [INFO] [stdout] | [INFO] [stdout] 45 | let catch_block = || -> Result<(), ::error::MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: this warning originates in the macro `test` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/mail.rs:890:23 [INFO] [stdout] | [INFO] [stdout] 890 | Date: provided_date.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `provided_date` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/compose.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 192 | / let mail = [INFO] [stdout] 193 | | if attachments.is_empty() { [INFO] [stdout] 194 | | mail [INFO] [stdout] 195 | | } else { [INFO] [stdout] 196 | | mail.wrap_with_mixed(attachments) [INFO] [stdout] 197 | | }; [INFO] [stdout] | |______________- unnecessary `let` binding [INFO] [stdout] 198 | [INFO] [stdout] 199 | mail [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 192 ~ [INFO] [stdout] 193 | [INFO] [stdout] 194 ~ if attachments.is_empty() { [INFO] [stdout] 195 + mail [INFO] [stdout] 196 + } else { [INFO] [stdout] 197 + mail.wrap_with_mixed(attachments) [INFO] [stdout] 198 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/default_impl/fs.rs:191:15 [INFO] [stdout] | [INFO] [stdout] 191 | .args(&["--brief", "--mime"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--brief", "--mime"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/default_impl/fs.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | &tail [INFO] [stdout] | ^^^^^ help: change this to: `tail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/default_impl/message_id_gen.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `headers::header_components::MessageId` [INFO] [stdout] --> src/default_impl/message_id_gen.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | self.generate_message_id().into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.generate_message_id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/default_impl/simple_context.rs:69:61 [INFO] [stdout] | [INFO] [stdout] 51 | PunyCodingDomain(EncodingError) [INFO] [stdout] | ------------------------------- the largest variant contains at least 128 bytes [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn new(domain: Domain, unique_part: SoftAsciiString) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `default_impl::simple_context::ContextSetupError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/default_impl/simple_context.rs:72:18 [INFO] [stdout] | [INFO] [stdout] 72 | .map_err(|err| ContextSetupError::ReadingEnv(err))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `ContextSetupError::ReadingEnv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/default_impl/simple_context.rs:78:18 [INFO] [stdout] | [INFO] [stdout] 78 | .map_err(|err| ContextSetupError::PunyCodingDomain(err))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `ContextSetupError::PunyCodingDomain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/iri.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_InvalidIRIScheme` [INFO] [stdout] 15 | #[fail(display = "invalid syntax for iri/uri scheme")] [INFO] [stdout] 16 | pub struct InvalidIRIScheme; [INFO] [stdout] | ---------------- `InvalidIRIScheme` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/iri.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_InvalidIRIScheme` [INFO] [stdout] 15 | #[fail(display = "invalid syntax for iri/uri scheme")] [INFO] [stdout] 16 | pub struct InvalidIRIScheme; [INFO] [stdout] | ---------------- `InvalidIRIScheme` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceError` [INFO] [stdout] 23 | pub enum ResourceError { [INFO] [stdout] | ------------- `ResourceError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceError` [INFO] [stdout] 23 | pub enum ResourceError { [INFO] [stdout] | ------------- `ResourceError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | #[derive(Copy, Clone, Debug, Fail, PartialEq, Eq, Hash)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceLoadingErrorKind` [INFO] [stdout] 51 | pub enum ResourceLoadingErrorKind { [INFO] [stdout] | ------------------------ `ResourceLoadingErrorKind` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | #[derive(Copy, Clone, Debug, Fail, PartialEq, Eq, Hash)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceLoadingErrorKind` [INFO] [stdout] 51 | pub enum ResourceLoadingErrorKind { [INFO] [stdout] | ------------------------ `ResourceLoadingErrorKind` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_OtherValidationError` [INFO] [stdout] 156 | pub enum OtherValidationError { [INFO] [stdout] | -------------------- `OtherValidationError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_OtherValidationError` [INFO] [stdout] 156 | pub enum OtherValidationError { [INFO] [stdout] | -------------------- `OtherValidationError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:203:17 [INFO] [stdout] | [INFO] [stdout] 203 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_MailError` [INFO] [stdout] 204 | pub enum MailError { [INFO] [stdout] | --------- `MailError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:203:17 [INFO] [stdout] | [INFO] [stdout] 203 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_MailError` [INFO] [stdout] 204 | pub enum MailError { [INFO] [stdout] | --------- `MailError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceNotUnloadableError` [INFO] [stdout] 282 | pub enum ResourceNotUnloadableError { [INFO] [stdout] | -------------------------- `ResourceNotUnloadableError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceNotUnloadableError` [INFO] [stdout] 282 | pub enum ResourceNotUnloadableError { [INFO] [stdout] | -------------------------- `ResourceNotUnloadableError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/resource/loading.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | mem::replace(resource_ref, new_resource.to_resource()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = mem::replace(resource_ref, new_resource.to_resource()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:466:21 [INFO] [stdout] | [INFO] [stdout] 466 | / mem::replace( [INFO] [stdout] 467 | | &mut self.inner, [INFO] [stdout] 468 | | InnerMailFuture::Loading { [INFO] [stdout] 469 | | mail, ctx, [INFO] [stdout] ... | [INFO] [stdout] 472 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 466 | let _ = mem::replace( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:478:29 [INFO] [stdout] | [INFO] [stdout] 478 | / ... mem::replace( [INFO] [stdout] 479 | | ... &mut self.inner, [INFO] [stdout] 480 | | ... InnerMailFuture::Loading { mail, pending, ctx } [INFO] [stdout] 481 | | ... ); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 478 | let _ = mem::replace( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | mem::replace(resource, Resource::EncData(enc_data)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 554 | let _ = mem::replace(resource, Resource::EncData(enc_data)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/default_impl/simple_context.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ContextSetupError` [INFO] [stdout] 42 | pub enum ContextSetupError { [INFO] [stdout] | ----------------- `ContextSetupError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/default_impl/simple_context.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ContextSetupError` [INFO] [stdout] 42 | pub enum ContextSetupError { [INFO] [stdout] | ----------------- `ContextSetupError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mail.rs:600:17 [INFO] [stdout] | [INFO] [stdout] 600 | let mut headers: &mut HeaderMap = headers; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/iri.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let split_pos = buffer.bytes().position(|b| b == b':') [INFO] [stdout] | _________________________^ [INFO] [stdout] 75 | | //TODO error type [INFO] [stdout] 76 | | .ok_or_else(|| InvalidIRIScheme)?; [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 76 - .ok_or_else(|| InvalidIRIScheme)?; [INFO] [stdout] 76 + .ok_or(InvalidIRIScheme)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/iri.rs:158:1 [INFO] [stdout] | [INFO] [stdout] 158 | impl Into for IRI { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 158 ~ impl From for String { [INFO] [stdout] 159 ~ fn from(val: IRI) -> Self { [INFO] [stdout] 160 ~ val.iri [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mime.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | /// == 78 chars) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 43 | /// == 78 chars) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/context.rs:192:41 [INFO] [stdout] | [INFO] [stdout] 192 | let fut = ctx.load_resource(&source) [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/resource/source.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for UseMediaType { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | UseMediaType::Auto [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 54 + #[derive(Default)] [INFO] [stdout] 55 | pub enum UseMediaType { [INFO] [stdout] 56 | /// Sniff content type if no content type was given from any other place. [INFO] [stdout] 57 ~ #[default] [INFO] [stdout] 58 ~ Auto, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/resource/data.rs:270:1 [INFO] [stdout] | [INFO] [stdout] 270 | / impl Default for TransferEncodingHint { [INFO] [stdout] 271 | | fn default() -> Self { [INFO] [stdout] 272 | | TransferEncodingHint::UseBase64 [INFO] [stdout] 273 | | } [INFO] [stdout] 274 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 247 + #[derive(Default)] [INFO] [stdout] 248 | pub enum TransferEncodingHint { [INFO] [stdout] 249 | /// Use Base64 encoding. [INFO] [stdout] 250 ~ #[default] [INFO] [stdout] 251 ~ UseBase64, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resource/loading.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | visitor(&key, resource) [INFO] [stdout] | ^^^^ help: change this to: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/loading.rs:144:20 [INFO] [stdout] | [INFO] [stdout] 144 | if let &Resource::Source(ref source) = resource { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 144 - if let &Resource::Source(ref source) = resource { [INFO] [stdout] 144 + if let Resource::Source(source) = resource { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/resource/loading.rs:181:57 [INFO] [stdout] | [INFO] [stdout] 181 | for (key, new_resource) in keys.into_iter().zip(loaded.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 181 - for (key, new_resource) in keys.into_iter().zip(loaded.into_iter()) { [INFO] [stdout] 181 + for (key, new_resource) in keys.into_iter().zip(loaded) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/resource/mod.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | / match self { [INFO] [stdout] 188 | | &Resource::Source(..) => None, [INFO] [stdout] 189 | | &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 190 | | &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] 191 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 187 ~ match *self { [INFO] [stdout] 188 ~ Resource::Source(..) => None, [INFO] [stdout] 189 ~ Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 190 ~ Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 189 - &Resource::Data(ref data) => Some(data.content_id()), [INFO] [stdout] 189 + Resource::Data(data) => Some(data.content_id()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/resource/mod.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 190 - &Resource::EncData(ref enc_data) => Some(enc_data.content_id()) [INFO] [stdout] 190 + Resource::EncData(enc_data) => Some(enc_data.content_id()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/encode.rs:42:18 [INFO] [stdout] | [INFO] [stdout] 42 | _encode_mail(&*mail, top, encoder) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 42 - _encode_mail(&*mail, top, encoder) [INFO] [stdout] 42 + _encode_mail(mail, top, encoder) [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 42 | _encode_mail(&**mail, top, encoder) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/encode.rs:59:20 [INFO] [stdout] | [INFO] [stdout] 59 | encode_headers(&mail, top, encoder)?; [INFO] [stdout] | ^^^^^ help: change this to: `mail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/encode.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | encode_mail_part(&mail, encoder)?; [INFO] [stdout] | ^^^^^ help: change this to: `mail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:78:6 [INFO] [stdout] | [INFO] [stdout] 78 | ) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encode.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let ignored_header = !top && [INFO] [stdout] | ______________________________^ [INFO] [stdout] 92 | | !(name_as_str.starts_with("Content-") [INFO] [stdout] 93 | | || name_as_str.starts_with("X-") ); [INFO] [stdout] | |__________________________________________________^ help: try: `!(top || name_as_str.starts_with("Content-") || name_as_str.starts_with("X-"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:120:6 [INFO] [stdout] | [INFO] [stdout] 120 | ) -> Result<(), EncodingError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:122:22 [INFO] [stdout] | [INFO] [stdout] 122 | let res = (|| -> Result<(), EncodingError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/encode.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | -> Result<(), MailError> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encode.rs:155:16 [INFO] [stdout] | [INFO] [stdout] 155 | if hidden_text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!hidden_text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:183:43 [INFO] [stdout] | [INFO] [stdout] 183 | encoder.write_header_line(|handle| { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 184 | | handle.write_char(minus)?; [INFO] [stdout] 185 | | handle.write_char(minus)?; [INFO] [stdout] 186 | | handle.write_str(&*boundary) [INFO] [stdout] 187 | | })?; [INFO] [stdout] | |_________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/encode.rs:186:38 [INFO] [stdout] | [INFO] [stdout] 186 | handle.write_str(&*boundary) [INFO] [stdout] | ^^^^^^^^^^ help: try: `&boundary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encode.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | if bodies.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bodies.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/encode.rs:192:43 [INFO] [stdout] | [INFO] [stdout] 192 | encoder.write_header_line(|handle| { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 193 | | handle.write_char(minus)?; [INFO] [stdout] 194 | | handle.write_char(minus)?; [INFO] [stdout] 195 | | handle.write_str(&*boundary)?; [INFO] [stdout] 196 | | handle.write_char(minus)?; [INFO] [stdout] 197 | | handle.write_char(minus) [INFO] [stdout] 198 | | })?; [INFO] [stdout] | |_________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/encode.rs:195:38 [INFO] [stdout] | [INFO] [stdout] 195 | handle.write_str(&*boundary)?; [INFO] [stdout] | ^^^^^^^^^^ help: try: `&boundary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:321:46 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn generally_validate_mail(&self) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/mail.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | / match self.body() { [INFO] [stdout] 328 | | &MailBody::SingleBody { .. } => {}, [INFO] [stdout] 329 | | &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] 330 | | for body in bodies { [INFO] [stdout] ... | [INFO] [stdout] 334 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 327 ~ match *self.body() { [INFO] [stdout] 328 ~ MailBody::SingleBody { .. } => {}, [INFO] [stdout] 329 ~ MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/mail.rs:329:13 [INFO] [stdout] | [INFO] [stdout] 329 | &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 329 - &MailBody::MultipleBodies { ref bodies, .. } => { [INFO] [stdout] 329 + MailBody::MultipleBodies { bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:513:59 [INFO] [stdout] | [INFO] [stdout] 513 | pub fn encode(&self, encoder: &mut EncodingBuffer) -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:518:61 [INFO] [stdout] | [INFO] [stdout] 518 | pub fn encode_into_bytes(&self, mail_type: MailType) -> Result, MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/mail.rs:571:9 [INFO] [stdout] | [INFO] [stdout] 571 | &Resource::EncData(ref ed) => ed, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 571 - &Resource::EncData(ref ed) => ed, [INFO] [stdout] 571 + Resource::EncData(ed) => ed, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/mail.rs:588:5 [INFO] [stdout] | [INFO] [stdout] 588 | / match body { [INFO] [stdout] 589 | | &mut MailBody::SingleBody { ref mut body } => { [INFO] [stdout] 590 | | let data = assume_encoded(body); [INFO] [stdout] ... | [INFO] [stdout] 614 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 588 ~ match *body { [INFO] [stdout] 589 ~ MailBody::SingleBody { ref mut body } => { [INFO] [stdout] 590 | let data = assume_encoded(body); [INFO] [stdout] ... [INFO] [stdout] 598 | }, [INFO] [stdout] 599 ~ MailBody::MultipleBodies { ref mut bodies, .. } => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/mail.rs:586:88 [INFO] [stdout] | [INFO] [stdout] 586 | fn recursive_auto_gen_headers(mail: &mut Mail, boundary_count: &mut usize, ctx: &C) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/mail.rs:611:70 [INFO] [stdout] | [INFO] [stdout] 611 | recursive_auto_gen_headers(sub_mail, boundary_count, ctx); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/mail.rs:618:8 [INFO] [stdout] | [INFO] [stdout] 618 | -> Result<(), MailError> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | Encoding(EncodingError), [INFO] [stdout] | ----------------------- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/mail.rs:658:1 [INFO] [stdout] | [INFO] [stdout] 658 | impl Into for EncodableMail { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 658 ~ impl From for Mail { [INFO] [stdout] 659 ~ fn from(val: EncodableMail) -> Self { [INFO] [stdout] 660 ~ let EncodableMail(mail) = val; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/compose.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 192 | / let mail = [INFO] [stdout] 193 | | if attachments.is_empty() { [INFO] [stdout] 194 | | mail [INFO] [stdout] 195 | | } else { [INFO] [stdout] 196 | | mail.wrap_with_mixed(attachments) [INFO] [stdout] 197 | | }; [INFO] [stdout] | |______________- unnecessary `let` binding [INFO] [stdout] 198 | [INFO] [stdout] 199 | mail [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 192 ~ [INFO] [stdout] 193 | [INFO] [stdout] 194 ~ if attachments.is_empty() { [INFO] [stdout] 195 + mail [INFO] [stdout] 196 + } else { [INFO] [stdout] 197 + mail.wrap_with_mixed(attachments) [INFO] [stdout] 198 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/default_impl/fs.rs:191:15 [INFO] [stdout] | [INFO] [stdout] 191 | .args(&["--brief", "--mime"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--brief", "--mime"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/default_impl/fs.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | &tail [INFO] [stdout] | ^^^^^ help: change this to: `tail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/default_impl/message_id_gen.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `internals::error::EncodingError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `headers::header_components::MessageId` [INFO] [stdout] --> src/default_impl/message_id_gen.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | self.generate_message_id().into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.generate_message_id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/default_impl/simple_context.rs:69:61 [INFO] [stdout] | [INFO] [stdout] 51 | PunyCodingDomain(EncodingError) [INFO] [stdout] | ------------------------------- the largest variant contains at least 128 bytes [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn new(domain: Domain, unique_part: SoftAsciiString) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `default_impl::simple_context::ContextSetupError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/default_impl/simple_context.rs:72:18 [INFO] [stdout] | [INFO] [stdout] 72 | .map_err(|err| ContextSetupError::ReadingEnv(err))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `ContextSetupError::ReadingEnv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/default_impl/simple_context.rs:78:18 [INFO] [stdout] | [INFO] [stdout] 78 | .map_err(|err| ContextSetupError::PunyCodingDomain(err))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `ContextSetupError::PunyCodingDomain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/iri.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_InvalidIRIScheme` [INFO] [stdout] 15 | #[fail(display = "invalid syntax for iri/uri scheme")] [INFO] [stdout] 16 | pub struct InvalidIRIScheme; [INFO] [stdout] | ---------------- `InvalidIRIScheme` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/iri.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_InvalidIRIScheme` [INFO] [stdout] 15 | #[fail(display = "invalid syntax for iri/uri scheme")] [INFO] [stdout] 16 | pub struct InvalidIRIScheme; [INFO] [stdout] | ---------------- `InvalidIRIScheme` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceError` [INFO] [stdout] 23 | pub enum ResourceError { [INFO] [stdout] | ------------- `ResourceError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceError` [INFO] [stdout] 23 | pub enum ResourceError { [INFO] [stdout] | ------------- `ResourceError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | #[derive(Copy, Clone, Debug, Fail, PartialEq, Eq, Hash)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceLoadingErrorKind` [INFO] [stdout] 51 | pub enum ResourceLoadingErrorKind { [INFO] [stdout] | ------------------------ `ResourceLoadingErrorKind` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | #[derive(Copy, Clone, Debug, Fail, PartialEq, Eq, Hash)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceLoadingErrorKind` [INFO] [stdout] 51 | pub enum ResourceLoadingErrorKind { [INFO] [stdout] | ------------------------ `ResourceLoadingErrorKind` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_OtherValidationError` [INFO] [stdout] 156 | pub enum OtherValidationError { [INFO] [stdout] | -------------------- `OtherValidationError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_OtherValidationError` [INFO] [stdout] 156 | pub enum OtherValidationError { [INFO] [stdout] | -------------------- `OtherValidationError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:203:17 [INFO] [stdout] | [INFO] [stdout] 203 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_MailError` [INFO] [stdout] 204 | pub enum MailError { [INFO] [stdout] | --------- `MailError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:203:17 [INFO] [stdout] | [INFO] [stdout] 203 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_MailError` [INFO] [stdout] 204 | pub enum MailError { [INFO] [stdout] | --------- `MailError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ResourceNotUnloadableError` [INFO] [stdout] 282 | pub enum ResourceNotUnloadableError { [INFO] [stdout] | -------------------------- `ResourceNotUnloadableError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | #[derive(Copy, Clone, Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ResourceNotUnloadableError` [INFO] [stdout] 282 | pub enum ResourceNotUnloadableError { [INFO] [stdout] | -------------------------- `ResourceNotUnloadableError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/resource/loading.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | mem::replace(resource_ref, new_resource.to_resource()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = mem::replace(resource_ref, new_resource.to_resource()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:466:21 [INFO] [stdout] | [INFO] [stdout] 466 | / mem::replace( [INFO] [stdout] 467 | | &mut self.inner, [INFO] [stdout] 468 | | InnerMailFuture::Loading { [INFO] [stdout] 469 | | mail, ctx, [INFO] [stdout] ... | [INFO] [stdout] 472 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 466 | let _ = mem::replace( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:478:29 [INFO] [stdout] | [INFO] [stdout] 478 | / ... mem::replace( [INFO] [stdout] 479 | | ... &mut self.inner, [INFO] [stdout] 480 | | ... InnerMailFuture::Loading { mail, pending, ctx } [INFO] [stdout] 481 | | ... ); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 478 | let _ = mem::replace( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/mail.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | mem::replace(resource, Resource::EncData(enc_data)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 554 | let _ = mem::replace(resource, Resource::EncData(enc_data)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/default_impl/simple_context.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ContextSetupError` [INFO] [stdout] 42 | pub enum ContextSetupError { [INFO] [stdout] | ----------------- `ContextSetupError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/default_impl/simple_context.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ContextSetupError` [INFO] [stdout] 42 | pub enum ContextSetupError { [INFO] [stdout] | ----------------- `ContextSetupError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> examples/readme.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | fn print_some_mail() -> Result<(), MailError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `mail_core::error::MailError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.28s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "26d4522773456661ef72c9741751535549def3e65a1dec8ff27f41976ec2e442", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "26d4522773456661ef72c9741751535549def3e65a1dec8ff27f41976ec2e442", kill_on_drop: false }` [INFO] [stdout] 26d4522773456661ef72c9741751535549def3e65a1dec8ff27f41976ec2e442