[INFO] updating cached repository https://github.com/fiirhok/mailcheck.rs
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 6548d395ab099f17091edbba192571da6dd0fc21
[INFO] checking fiirhok/mailcheck.rs against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffiirhok%2Fmailcheck.rs" "/workspace/builds/worker-3/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/fiirhok/mailcheck.rs on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/fiirhok/mailcheck.rs
[INFO] finished tweaking git repo https://github.com/fiirhok/mailcheck.rs
[INFO] tweaked toml for git repo https://github.com/fiirhok/mailcheck.rs written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] crate git repo https://github.com/fiirhok/mailcheck.rs already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr] error: the lock file /workspace/builds/worker-3/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] d7b304c19c19288b2b0cf4dfc079c7124f6450e7e39601f99cf4b93063c1d843
[INFO] running `"docker" "start" "-a" "d7b304c19c19288b2b0cf4dfc079c7124f6450e7e39601f99cf4b93063c1d843"`
[INFO] [stderr]    Compiling proc-macro2 v1.0.10
[INFO] [stderr]    Compiling syn v1.0.17
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling rustversion v1.0.2
[INFO] [stderr]    Compiling standback v0.2.2
[INFO] [stderr]    Compiling proc-macro-hack v0.5.15
[INFO] [stderr]    Compiling openssl v0.10.29
[INFO] [stderr]    Compiling openssl-sys v0.9.55
[INFO] [stderr]     Checking regex v1.3.6
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling time-macros-impl v0.1.0
[INFO] [stderr]     Checking time-macros v0.1.0
[INFO] [stderr]    Compiling time v0.2.9
[INFO] [stderr]     Checking mailcheck v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 | use self::openssl::crypto::hash::Hasher;
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:11:20
[INFO] [stderr]    |
[INFO] [stderr] 11 | use self::openssl::crypto::hash::Type;
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:12:20
[INFO] [stderr]    |
[INFO] [stderr] 12 | use self::openssl::crypto::hash::Type::{SHA256,SHA1};
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 | use self::openssl::crypto::hash::Hasher;
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:11:20
[INFO] [stderr]    |
[INFO] [stderr] 11 | use self::openssl::crypto::hash::Type;
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `crypto` in `openssl`
[INFO] [stderr]   --> src/dkim/mod.rs:12:20
[INFO] [stderr]    |
[INFO] [stderr] 12 | use self::openssl::crypto::hash::Type::{SHA256,SHA1};
[INFO] [stderr]    |                    ^^^^^^ could not find `crypto` in `openssl`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `Hasher`
[INFO] [stderr]    --> src/dkim/mod.rs:118:21
[INFO] [stderr]     |
[INFO] [stderr] 118 |             hasher: Hasher::new(hash_type),
[INFO] [stderr]     |                     ^^^^^^ use of undeclared type or module `Hasher`
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `Type` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |     hash_type: Type,
[INFO] [stderr]    |                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `SHA256` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:73:29
[INFO] [stderr]    |
[INFO] [stderr] 73 |             "rsa-sha256" => SHA256,
[INFO] [stderr]    |                             ^^^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `SHA1` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:74:27
[INFO] [stderr]    |
[INFO] [stderr] 74 |             "rsa-sha1" => SHA1,
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `Hasher` in this scope
[INFO] [stderr]    --> src/dkim/mod.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |     hasher: Hasher,
[INFO] [stderr]     |             ^^^^^^ not found in this scope
[INFO] [stderr]     |
[INFO] [stderr] help: possible candidates are found in other modules, you can import them into scope
[INFO] [stderr]     |
[INFO] [stderr] 6   | use dkim::openssl::hash::Hasher;
[INFO] [stderr]     |
[INFO] [stderr] 6   | use std::hash::Hasher;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:68:20
[INFO] [stderr]    |
[INFO] [stderr] 68 |         let tags = try!(parse_dkim_signature(signature));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:70:42
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let (header_canon, body_canon) = try!(parse_canonicalization(&tags));
[INFO] [stderr]    |                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:72:33
[INFO] [stderr]    |
[INFO] [stderr] 72 |         let hash_type = match &(try!(unwrap_string_tag_value(&tags, "a"))) as &str {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:79:23
[INFO] [stderr]    |
[INFO] [stderr] 79 |             version:  try!(unwrap_uint_tag_value(&tags, "v")),
[INFO] [stderr]    |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:81:24
[INFO] [stderr]    |
[INFO] [stderr] 81 |             signature: try!(unwrap_string_tag_value(&tags, "b")).replace(" ",""),
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:86:19
[INFO] [stderr]    |
[INFO] [stderr] 86 |             sdid: try!(unwrap_string_tag_value(&tags, "d")),
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:87:28
[INFO] [stderr]    |
[INFO] [stderr] 87 |             header_fields: try!(unwrap_string_tag_value(&tags, "h")).split(':').map(|x| x.to_string()).collect(),
[INFO] [stderr]    |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:88:23
[INFO] [stderr]    |
[INFO] [stderr] 88 |             selector: try!(unwrap_string_tag_value(&tags, "s")),
[INFO] [stderr]    |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:186:29
[INFO] [stderr]     |
[INFO] [stderr] 186 |         let (name, value) = try!(parse_dkim_tag(tag.trim()));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:248:29
[INFO] [stderr]     |
[INFO] [stderr] 248 |                         Ok((try!(map_canon(header)), try!(map_canon(body)))),
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:248:54
[INFO] [stderr]     |
[INFO] [stderr] 248 |                         Ok((try!(map_canon(header)), try!(map_canon(body)))),
[INFO] [stderr]     |                                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:250:29
[INFO] [stderr]     |
[INFO] [stderr] 250 |                         Ok((try!(map_canon(header)), CanonicalizationType::Simple)),
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/events.rs:20:32
[INFO] [stderr]    |
[INFO] [stderr] 20 |     fn new(next_stage: &'a mut MessageParserStage) -> Self;
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/message_scanner.rs:17:26
[INFO] [stderr]    |
[INFO] [stderr] 17 |     next_stage: &'a mut (MessageParserStage + 'a),
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/message_scanner.rs:33:32
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn new(next_stage: &'a mut MessageParserStage) -> MessageScanner<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_parser.rs:15:26
[INFO] [stderr]    |
[INFO] [stderr] 15 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_parser.rs:39:32
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn new(next_stage: &'a mut MessageParserStage) -> HeaderParser<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/header_decoder.rs:7:26
[INFO] [stderr]   |
[INFO] [stderr] 7 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_decoder.rs:11:32
[INFO] [stderr]    |
[INFO] [stderr] 11 |     fn new(next_stage: &'a mut MessageParserStage) -> HeaderDecoder<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/reader_parser.rs:9:26
[INFO] [stderr]   |
[INFO] [stderr] 9 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/reader_parser.rs:14:36
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn new(next_stage: &'a mut MessageParserStage, reader: R) -> ReaderParser<'a, R> {
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim_checker.rs:15:26
[INFO] [stderr]    |
[INFO] [stderr] 15 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim_checker.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |     fn new(next_stage: &'a mut MessageParserStage) -> DkimChecker<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: the item `MessageParserFilter` is imported redundantly
[INFO] [stderr]    --> src/dkim_checker.rs:134:9
[INFO] [stderr]     |
[INFO] [stderr] 4   | use events::{MessageParserStage,MessageParserFilter};
[INFO] [stderr]     |                                 ------------------- the item `MessageParserFilter` is already imported here
[INFO] [stderr] ...
[INFO] [stderr] 134 |     use events::MessageParserFilter;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:14:58
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn body(canon_type: CanonicalizationType) -> Box<BodyCanonicalizer> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:20:58
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn head(canon_type: CanonicalizationType) -> Box<HeaderCanonicalizer> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:50:18
[INFO] [stderr]    |
[INFO] [stderr] 50 |         for _ in (0 .. self.pending_newlines ) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:86:18
[INFO] [stderr]    |
[INFO] [stderr] 86 |         for _ in (0 .. self.pending_newlines ) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/dkim/mod.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |     body_canon: Box<BodyCanonicalizer>,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/dkim/mod.rs:106:23
[INFO] [stderr]     |
[INFO] [stderr] 106 |     header_canon: Box<HeaderCanonicalizer>,
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: the item `MissingTag` is imported redundantly
[INFO] [stderr]    --> src/dkim/mod.rs:208:9
[INFO] [stderr]     |
[INFO] [stderr] 19  | use self::DkimSignatureParseError::MissingTag;
[INFO] [stderr]     |     ----------------------------------------- the item `MissingTag` is already imported here
[INFO] [stderr] ...
[INFO] [stderr] 208 |     use self::DkimSignatureParseError::MissingTag;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead
[INFO] [stderr]  --> src/rfc2047.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead
[INFO] [stderr]  --> src/dkim/canonicalizer.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `Hasher`
[INFO] [stderr]    --> src/dkim/mod.rs:118:21
[INFO] [stderr]     |
[INFO] [stderr] 118 |             hasher: Hasher::new(hash_type),
[INFO] [stderr]     |                     ^^^^^^ use of undeclared type or module `Hasher`
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `Type` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |     hash_type: Type,
[INFO] [stderr]    |                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `SHA256` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:73:29
[INFO] [stderr]    |
[INFO] [stderr] 73 |             "rsa-sha256" => SHA256,
[INFO] [stderr]    |                             ^^^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `SHA1` in this scope
[INFO] [stderr]   --> src/dkim/mod.rs:74:27
[INFO] [stderr]    |
[INFO] [stderr] 74 |             "rsa-sha1" => SHA1,
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `Hasher` in this scope
[INFO] [stderr]    --> src/dkim/mod.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |     hasher: Hasher,
[INFO] [stderr]     |             ^^^^^^ not found in this scope
[INFO] [stderr]     |
[INFO] [stderr] help: possible candidates are found in other modules, you can import them into scope
[INFO] [stderr]     |
[INFO] [stderr] 6   | use dkim::openssl::hash::Hasher;
[INFO] [stderr]     |
[INFO] [stderr] 6   | use std::hash::Hasher;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:68:20
[INFO] [stderr]    |
[INFO] [stderr] 68 |         let tags = try!(parse_dkim_signature(signature));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:70:42
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let (header_canon, body_canon) = try!(parse_canonicalization(&tags));
[INFO] [stderr]    |                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:72:33
[INFO] [stderr]    |
[INFO] [stderr] 72 |         let hash_type = match &(try!(unwrap_string_tag_value(&tags, "a"))) as &str {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:79:23
[INFO] [stderr]    |
[INFO] [stderr] 79 |             version:  try!(unwrap_uint_tag_value(&tags, "v")),
[INFO] [stderr]    |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:81:24
[INFO] [stderr]    |
[INFO] [stderr] 81 |             signature: try!(unwrap_string_tag_value(&tags, "b")).replace(" ",""),
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:86:19
[INFO] [stderr]    |
[INFO] [stderr] 86 |             sdid: try!(unwrap_string_tag_value(&tags, "d")),
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:87:28
[INFO] [stderr]    |
[INFO] [stderr] 87 |             header_fields: try!(unwrap_string_tag_value(&tags, "h")).split(':').map(|x| x.to_string()).collect(),
[INFO] [stderr]    |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/dkim/mod.rs:88:23
[INFO] [stderr]    |
[INFO] [stderr] 88 |             selector: try!(unwrap_string_tag_value(&tags, "s")),
[INFO] [stderr]    |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:186:29
[INFO] [stderr]     |
[INFO] [stderr] 186 |         let (name, value) = try!(parse_dkim_tag(tag.trim()));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:248:29
[INFO] [stderr]     |
[INFO] [stderr] 248 |                         Ok((try!(map_canon(header)), try!(map_canon(body)))),
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:248:54
[INFO] [stderr]     |
[INFO] [stderr] 248 |                         Ok((try!(map_canon(header)), try!(map_canon(body)))),
[INFO] [stderr]     |                                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/dkim/mod.rs:250:29
[INFO] [stderr]     |
[INFO] [stderr] 250 |                         Ok((try!(map_canon(header)), CanonicalizationType::Simple)),
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/events.rs:20:32
[INFO] [stderr]    |
[INFO] [stderr] 20 |     fn new(next_stage: &'a mut MessageParserStage) -> Self;
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/message_scanner.rs:17:26
[INFO] [stderr]    |
[INFO] [stderr] 17 |     next_stage: &'a mut (MessageParserStage + 'a),
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/message_scanner.rs:33:32
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn new(next_stage: &'a mut MessageParserStage) -> MessageScanner<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_parser.rs:15:26
[INFO] [stderr]    |
[INFO] [stderr] 15 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_parser.rs:39:32
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn new(next_stage: &'a mut MessageParserStage) -> HeaderParser<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/header_decoder.rs:7:26
[INFO] [stderr]   |
[INFO] [stderr] 7 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/header_decoder.rs:11:32
[INFO] [stderr]    |
[INFO] [stderr] 11 |     fn new(next_stage: &'a mut MessageParserStage) -> HeaderDecoder<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/reader_parser.rs:9:26
[INFO] [stderr]   |
[INFO] [stderr] 9 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/reader_parser.rs:14:36
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn new(next_stage: &'a mut MessageParserStage, reader: R) -> ReaderParser<'a, R> {
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim_checker.rs:15:26
[INFO] [stderr]    |
[INFO] [stderr] 15 |     next_stage: &'a mut (MessageParserStage + 'a)
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim_checker.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |     fn new(next_stage: &'a mut MessageParserStage) -> DkimChecker<'a> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:14:58
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn body(canon_type: CanonicalizationType) -> Box<BodyCanonicalizer> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:20:58
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn head(canon_type: CanonicalizationType) -> Box<HeaderCanonicalizer> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:50:18
[INFO] [stderr]    |
[INFO] [stderr] 50 |         for _ in (0 .. self.pending_newlines ) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:86:18
[INFO] [stderr]    |
[INFO] [stderr] 86 |         for _ in (0 .. self.pending_newlines ) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/dkim/mod.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |     body_canon: Box<BodyCanonicalizer>,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/dkim/mod.rs:106:23
[INFO] [stderr]     |
[INFO] [stderr] 106 |     header_canon: Box<HeaderCanonicalizer>,
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer`
[INFO] [stderr] 
[INFO] [stderr] warning: the item `MissingTag` is imported redundantly
[INFO] [stderr]    --> src/dkim/mod.rs:208:9
[INFO] [stderr]     |
[INFO] [stderr] 19  | use self::DkimSignatureParseError::MissingTag;
[INFO] [stderr]     |     ----------------------------------------- the item `MissingTag` is already imported here
[INFO] [stderr] ...
[INFO] [stderr] 208 |     use self::DkimSignatureParseError::MissingTag;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead
[INFO] [stderr]  --> src/rfc2047.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead
[INFO] [stderr]  --> src/dkim/canonicalizer.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'core::str::<impl str>::trim_right_matches': superseded by `trim_end_matches`
[INFO] [stderr]   --> src/header_parser.rs:80:49
[INFO] [stderr]    |
[INFO] [stderr] 80 |                     let trimmed = &value.trim().trim_right_matches(':');
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/rfc2047.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |     for (start,end) in char_regex.find_iter(content) {
[INFO] [stderr]    |         ^^^^^^^^^^^    ----------------------------- this expression has type `regex::Match<'_>`
[INFO] [stderr]    |         |
[INFO] [stderr]    |         expected struct `regex::Match`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected struct `regex::Match<'_>`
[INFO] [stderr]                found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'core::str::<impl str>::trim_right_matches': superseded by `trim_end_matches`
[INFO] [stderr]   --> src/header_parser.rs:80:49
[INFO] [stderr]    |
[INFO] [stderr] 80 |                     let trimmed = &value.trim().trim_right_matches(':');
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/rfc2047.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |     for (start,end) in char_regex.find_iter(content) {
[INFO] [stderr]    |         ^^^^^^^^^^^    ----------------------------- this expression has type `regex::Match<'_>`
[INFO] [stderr]    |         |
[INFO] [stderr]    |         expected struct `regex::Match`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected struct `regex::Match<'_>`
[INFO] [stderr]                found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:25
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                         ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:37
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                                     ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:49
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                                                 ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:25
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                         ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:37
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                                     ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for reference `&regex::Captures<'_>` in the current scope
[INFO] [stderr]   --> src/rfc2047.rs:91:49
[INFO] [stderr]    |
[INFO] [stderr] 91 |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr]    |                                                 ^^ method not found in `&regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/rfc2047.rs:90:9
[INFO] [stderr]     |
[INFO] [stderr] 86  |       fn from_rfc2047(&self) -> String {
[INFO] [stderr]     |                                 ------ expected `std::string::String` because of return type
[INFO] [stderr] ...
[INFO] [stderr] 90  | /         encoded_word_re.replace_all(&ws_removed, |caps: &Captures| {
[INFO] [stderr] 91  | |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr] 92  | |                 (Some(charset), Some(encoding), Some(content)) => {
[INFO] [stderr] 93  | |                     match decode_word(charset, encoding, content) {
[INFO] [stderr] ...   |
[INFO] [stderr] 99  | |             }
[INFO] [stderr] 100 | |         })
[INFO] [stderr]     | |__________^ expected struct `std::string::String`, found enum `std::borrow::Cow`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected struct `std::string::String`
[INFO] [stderr]                  found enum `std::borrow::Cow<'_, str>`
[INFO] [stderr] help: try using a conversion method
[INFO] [stderr]     |
[INFO] [stderr] 90  |         encoded_word_re.replace_all(&ws_removed, |caps: &Captures| {
[INFO] [stderr] 91  |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr] 92  |                 (Some(charset), Some(encoding), Some(content)) => {
[INFO] [stderr] 93  |                     match decode_word(charset, encoding, content) {
[INFO] [stderr] 94  |                         Ok(decoded) => decoded,
[INFO] [stderr] 95  |                         Err(_) => self.to_string()
[INFO] [stderr]   ...
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/rfc2047.rs:90:9
[INFO] [stderr]     |
[INFO] [stderr] 86  |       fn from_rfc2047(&self) -> String {
[INFO] [stderr]     |                                 ------ expected `std::string::String` because of return type
[INFO] [stderr] ...
[INFO] [stderr] 90  | /         encoded_word_re.replace_all(&ws_removed, |caps: &Captures| {
[INFO] [stderr] 91  | |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr] 92  | |                 (Some(charset), Some(encoding), Some(content)) => {
[INFO] [stderr] 93  | |                     match decode_word(charset, encoding, content) {
[INFO] [stderr] ...   |
[INFO] [stderr] 99  | |             }
[INFO] [stderr] 100 | |         })
[INFO] [stderr]     | |__________^ expected struct `std::string::String`, found enum `std::borrow::Cow`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected struct `std::string::String`
[INFO] [stderr]                  found enum `std::borrow::Cow<'_, str>`
[INFO] [stderr] help: try using a conversion method
[INFO] [stderr]     |
[INFO] [stderr] 90  |         encoded_word_re.replace_all(&ws_removed, |caps: &Captures| {
[INFO] [stderr] 91  |             match (caps.at(1), caps.at(2), caps.at(3)) {
[INFO] [stderr] 92  |                 (Some(charset), Some(encoding), Some(content)) => {
[INFO] [stderr] 93  |                     match decode_word(charset, encoding, content) {
[INFO] [stderr] 94  |                         Ok(decoded) => decoded,
[INFO] [stderr] 95  |                         Err(_) => self.to_string()
[INFO] [stderr]   ...
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'core::str::<impl str>::trim_right_matches': superseded by `trim_end_matches`
[INFO] [stderr]    --> src/dkim/mod.rs:184:31
[INFO] [stderr]     |
[INFO] [stderr] 184 |     let tags = dkim_signature.trim_right_matches(';').split(';');
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stderr]    --> src/dkim/mod.rs:246:47
[INFO] [stderr]     |
[INFO] [stderr] 246 |                 Some(groups) => match (groups.at(1), groups.at(2)) {
[INFO] [stderr]     |                                               ^^ method not found in `regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'core::str::<impl str>::trim_right_matches': superseded by `trim_end_matches`
[INFO] [stderr]    --> src/dkim/mod.rs:184:31
[INFO] [stderr]     |
[INFO] [stderr] 184 |     let tags = dkim_signature.trim_right_matches(';').split(';');
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stderr]    --> src/dkim/mod.rs:246:61
[INFO] [stderr]     |
[INFO] [stderr] 246 |                 Some(groups) => match (groups.at(1), groups.at(2)) {
[INFO] [stderr]     |                                                             ^^ method not found in `regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&std::vec::Vec<u8>` to `std::vec::Vec<u8>`
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:56:25
[INFO] [stderr]    |
[INFO] [stderr] 56 |         output = output + input;
[INFO] [stderr]    |                  ------ ^ ----- &std::vec::Vec<u8>
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  std::vec::Vec<u8>
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stderr]    --> src/dkim/mod.rs:246:47
[INFO] [stderr]     |
[INFO] [stderr] 246 |                 Some(groups) => match (groups.at(1), groups.at(2)) {
[INFO] [stderr]     |                                               ^^ method not found in `regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stderr]    --> src/dkim/mod.rs:246:61
[INFO] [stderr]     |
[INFO] [stderr] 246 |                 Some(groups) => match (groups.at(1), groups.at(2)) {
[INFO] [stderr]     |                                                             ^^ method not found in `regex::Captures<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&std::vec::Vec<u8>` to `std::vec::Vec<u8>`
[INFO] [stderr]   --> src/dkim/canonicalizer.rs:56:25
[INFO] [stderr]    |
[INFO] [stderr] 56 |         output = output + input;
[INFO] [stderr]    |                  ------ ^ ----- &std::vec::Vec<u8>
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  std::vec::Vec<u8>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 2]` to `std::vec::Vec<u8>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:188:16
[INFO] [stderr]     |
[INFO] [stderr] 188 |         result + b"\r\n"
[INFO] [stderr]     |         ------ ^ ------- &[u8; 2]
[INFO] [stderr]     |         |
[INFO] [stderr]     |         std::vec::Vec<u8>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 15]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:200:51
[INFO] [stderr]     |
[INFO] [stderr] 200 |     result.extend(canon.canonicalize(&(Vec::new() + b"Test\r\nTest \r\n\r\n")));
[INFO] [stderr]     |                                        ---------- ^ ------------------------ &[u8; 15]
[INFO] [stderr]     |                                        |
[INFO] [stderr]     |                                        std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 21]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:201:51
[INFO] [stderr]     |
[INFO] [stderr] 201 |     result.extend(canon.canonicalize(&(Vec::new() + b"\r\none  last  line\r\n\r\n")));
[INFO] [stderr]     |                                        ---------- ^ ------------------------------ &[u8; 21]
[INFO] [stderr]     |                                        |
[INFO] [stderr]     |                                        std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 2]` to `std::vec::Vec<u8>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:188:16
[INFO] [stderr]     |
[INFO] [stderr] 188 |         result + b"\r\n"
[INFO] [stderr]     |         ------ ^ ------- &[u8; 2]
[INFO] [stderr]     |         |
[INFO] [stderr]     |         std::vec::Vec<u8>
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stderr]  --> src/rfc2047.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stderr]  --> src/dkim/canonicalizer.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToBase64`
[INFO] [stderr]   --> src/dkim/mod.rs:14:37
[INFO] [stderr]    |
[INFO] [stderr] 14 | use self::rustc_serialize::base64::{ToBase64,Config};
[INFO] [stderr]    |                                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]   --> src/dkim/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use std::io::Write;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 17 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0308, E0369, E0412, E0425, E0433, E0599.
[INFO] [stderr] For more information about an error, try `rustc --explain E0308`.
[INFO] [stderr] error[E0369]: cannot add `&[u8; 15]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:215:51
[INFO] [stderr]     |
[INFO] [stderr] 215 |     result.extend(canon.canonicalize(&(Vec::new() + b"Test\r\nTest \r\n\r\n")));
[INFO] [stderr]     |                                        ---------- ^ ------------------------ &[u8; 15]
[INFO] [stderr]     |                                        |
[INFO] [stderr]     |                                        std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 22]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:216:51
[INFO] [stderr]     |
[INFO] [stderr] 216 |     result.extend(canon.canonicalize(&(Vec::new() + b"\r\none  last \t line\r\n\r\n")));
[INFO] [stderr]     |                                        ---------- ^ -------------------------------- &[u8; 22]
[INFO] [stderr]     |                                        |
[INFO] [stderr]     |                                        std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 32]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:232:61
[INFO] [stderr]     |
[INFO] [stderr] 232 |     let result = canon.canonicalize(name, value, Vec::new() + raw);
[INFO] [stderr]     |                                                  ---------- ^ --- &[u8; 32]
[INFO] [stderr]     |                                                  |
[INFO] [stderr]     |                                                  std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `&[u8; 32]` to `std::vec::Vec<_>`
[INFO] [stderr]    --> src/dkim/canonicalizer.rs:247:61
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let result = canon.canonicalize(name, value, Vec::new() + raw);
[INFO] [stderr]     |                                                  ---------- ^ --- &[u8; 32]
[INFO] [stderr]     |                                                  |
[INFO] [stderr]     |                                                  std::vec::Vec<_>
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stderr]  --> src/rfc2047.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stderr]  --> src/dkim/canonicalizer.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ascii::AsciiExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToBase64`
[INFO] [stderr]   --> src/dkim/mod.rs:14:37
[INFO] [stderr]    |
[INFO] [stderr] 14 | use self::rustc_serialize::base64::{ToBase64,Config};
[INFO] [stderr]    |                                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]   --> src/dkim/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use std::io::Write;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: could not compile `mailcheck`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: aborting due to 23 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0308, E0369, E0412, E0425, E0433, E0599.
[INFO] [stderr] For more information about an error, try `rustc --explain E0308`.
[INFO] [stderr] error: could not compile `mailcheck`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "d7b304c19c19288b2b0cf4dfc079c7124f6450e7e39601f99cf4b93063c1d843"`
[INFO] running `"docker" "rm" "-f" "d7b304c19c19288b2b0cf4dfc079c7124f6450e7e39601f99cf4b93063c1d843"`
[INFO] [stdout] d7b304c19c19288b2b0cf4dfc079c7124f6450e7e39601f99cf4b93063c1d843
