[INFO] cloning repository https://github.com/fiirhok/mailcheck.rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fiirhok/mailcheck.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffiirhok%2Fmailcheck.rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffiirhok%2Fmailcheck.rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6548d395ab099f17091edbba192571da6dd0fc21 [INFO] checking fiirhok/mailcheck.rs against beta for pr-78714 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffiirhok%2Fmailcheck.rs" "/workspace/builds/worker-3/source", kill_on_drop: false }` [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 beta [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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 `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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 `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "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" "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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6780740463b3e22402913eb2ae9a02e75ce12f1b118cfd391b77947f2bb66d34 [INFO] running `Command { std: "docker" "start" "-a" "6780740463b3e22402913eb2ae9a02e75ce12f1b118cfd391b77947f2bb66d34", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6780740463b3e22402913eb2ae9a02e75ce12f1b118cfd391b77947f2bb66d34", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6780740463b3e22402913eb2ae9a02e75ce12f1b118cfd391b77947f2bb66d34", kill_on_drop: false }` [INFO] [stdout] 6780740463b3e22402913eb2ae9a02e75ce12f1b118cfd391b77947f2bb66d34 [INFO] running `Command { std: "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" "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" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 9a1100519997fe6a591e87ea63fd2f8bab7dd19a2ed39512f62f8e8517c4dbe3 [INFO] running `Command { std: "docker" "start" "-a" "9a1100519997fe6a591e87ea63fd2f8bab7dd19a2ed39512f62f8e8517c4dbe3", kill_on_drop: false }` [INFO] [stderr] Checking openssl v0.10.30 [INFO] [stderr] Checking mailcheck v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use self::openssl::crypto::hash::Hasher; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use self::openssl::crypto::hash::Type; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use self::openssl::crypto::hash::Type::{SHA256,SHA1}; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use self::openssl::crypto::hash::Hasher; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use self::openssl::crypto::hash::Type; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `crypto` in `openssl` [INFO] [stdout] --> src/dkim/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use self::openssl::crypto::hash::Type::{SHA256,SHA1}; [INFO] [stdout] | ^^^^^^ could not find `crypto` in `openssl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Type` in this scope [INFO] [stdout] --> src/dkim/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | hash_type: Type, [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `dkim::canonicalizer::char::EscapeUnicodeState::Type`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 32 | hash_type: dkim::canonicalizer::char::EscapeUnicodeState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Type` in this scope [INFO] [stdout] --> src/dkim/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | hash_type: Type, [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `dkim::canonicalizer::char::EscapeUnicodeState::Type`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 32 | hash_type: dkim::canonicalizer::char::EscapeUnicodeState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `SHA256` in this scope [INFO] [stdout] --> src/dkim/mod.rs:73:29 [INFO] [stdout] | [INFO] [stdout] 73 | "rsa-sha256" => SHA256, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `SHA1` in this scope [INFO] [stdout] --> src/dkim/mod.rs:74:27 [INFO] [stdout] | [INFO] [stdout] 74 | "rsa-sha1" => SHA1, [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `SHA256` in this scope [INFO] [stdout] --> src/dkim/mod.rs:73:29 [INFO] [stdout] | [INFO] [stdout] 73 | "rsa-sha256" => SHA256, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Hasher` in this scope [INFO] [stdout] --> src/dkim/mod.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | hasher: Hasher, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 6 | use dkim::openssl::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] 6 | use std::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Hasher` [INFO] [stdout] --> src/dkim/mod.rs:118:21 [INFO] [stdout] | [INFO] [stdout] 118 | hasher: Hasher::new(hash_type), [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 6 | use dkim::openssl::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] 6 | use std::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | let tags = try!(parse_dkim_signature(signature)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:70:42 [INFO] [stdout] | [INFO] [stdout] 70 | let (header_canon, body_canon) = try!(parse_canonicalization(&tags)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:72:33 [INFO] [stdout] | [INFO] [stdout] 72 | let hash_type = match &(try!(unwrap_string_tag_value(&tags, "a"))) as &str { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | version: try!(unwrap_uint_tag_value(&tags, "v")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | signature: try!(unwrap_string_tag_value(&tags, "b")).replace(" ",""), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:86:19 [INFO] [stdout] | [INFO] [stdout] 86 | sdid: try!(unwrap_string_tag_value(&tags, "d")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:87:28 [INFO] [stdout] | [INFO] [stdout] 87 | header_fields: try!(unwrap_string_tag_value(&tags, "h")).split(':').map(|x| x.to_string()).collect(), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | selector: try!(unwrap_string_tag_value(&tags, "s")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | let (name, value) = try!(parse_dkim_tag(tag.trim())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | Ok((try!(map_canon(header)), try!(map_canon(body)))), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:248:54 [INFO] [stdout] | [INFO] [stdout] 248 | Ok((try!(map_canon(header)), try!(map_canon(body)))), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:250:29 [INFO] [stdout] | [INFO] [stdout] 250 | Ok((try!(map_canon(header)), CanonicalizationType::Simple)), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/events.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn new(next_stage: &'a mut MessageParserStage) -> Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/message_scanner.rs:17:26 [INFO] [stdout] | [INFO] [stdout] 17 | next_stage: &'a mut (MessageParserStage + 'a), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/message_scanner.rs:33:32 [INFO] [stdout] | [INFO] [stdout] 33 | fn new(next_stage: &'a mut MessageParserStage) -> MessageScanner<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_parser.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_parser.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | fn new(next_stage: &'a mut MessageParserStage) -> HeaderParser<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_decoder.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_decoder.rs:11:32 [INFO] [stdout] | [INFO] [stdout] 11 | fn new(next_stage: &'a mut MessageParserStage) -> HeaderDecoder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/reader_parser.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/reader_parser.rs:14:36 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(next_stage: &'a mut MessageParserStage, reader: R) -> ReaderParser<'a, R> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim_checker.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim_checker.rs:42:32 [INFO] [stdout] | [INFO] [stdout] 42 | fn new(next_stage: &'a mut MessageParserStage) -> DkimChecker<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/canonicalizer.rs:14:58 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn body(canon_type: CanonicalizationType) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `SHA1` in this scope [INFO] [stdout] --> src/dkim/mod.rs:74:27 [INFO] [stdout] | [INFO] [stdout] 74 | "rsa-sha1" => SHA1, [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/canonicalizer.rs:20:58 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn head(canon_type: CanonicalizationType) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/dkim/canonicalizer.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 50 | for _ in (0 .. self.pending_newlines ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Hasher` in this scope [INFO] [stdout] --> src/dkim/mod.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | hasher: Hasher, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 6 | use dkim::openssl::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] 6 | use std::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/dkim/canonicalizer.rs:86:18 [INFO] [stdout] | [INFO] [stdout] 86 | for _ in (0 .. self.pending_newlines ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Hasher` [INFO] [stdout] --> src/dkim/mod.rs:118:21 [INFO] [stdout] | [INFO] [stdout] 118 | hasher: Hasher::new(hash_type), [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 6 | use dkim::openssl::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] 6 | use std::hash::Hasher; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/mod.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | body_canon: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/mod.rs:106:23 [INFO] [stdout] | [INFO] [stdout] 106 | header_canon: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `MissingTag` is imported redundantly [INFO] [stdout] --> src/dkim/mod.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 19 | use self::DkimSignatureParseError::MissingTag; [INFO] [stdout] | ----------------------------------------- the item `MissingTag` is already imported here [INFO] [stdout] ... [INFO] [stdout] 208 | use self::DkimSignatureParseError::MissingTag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | let tags = try!(parse_dkim_signature(signature)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:70:42 [INFO] [stdout] | [INFO] [stdout] 70 | let (header_canon, body_canon) = try!(parse_canonicalization(&tags)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:72:33 [INFO] [stdout] | [INFO] [stdout] 72 | let hash_type = match &(try!(unwrap_string_tag_value(&tags, "a"))) as &str { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | version: try!(unwrap_uint_tag_value(&tags, "v")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | signature: try!(unwrap_string_tag_value(&tags, "b")).replace(" ",""), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:86:19 [INFO] [stdout] | [INFO] [stdout] 86 | sdid: try!(unwrap_string_tag_value(&tags, "d")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:87:28 [INFO] [stdout] | [INFO] [stdout] 87 | header_fields: try!(unwrap_string_tag_value(&tags, "h")).split(':').map(|x| x.to_string()).collect(), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | selector: try!(unwrap_string_tag_value(&tags, "s")), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | let (name, value) = try!(parse_dkim_tag(tag.trim())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | Ok((try!(map_canon(header)), try!(map_canon(body)))), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:248:54 [INFO] [stdout] | [INFO] [stdout] 248 | Ok((try!(map_canon(header)), try!(map_canon(body)))), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dkim/mod.rs:250:29 [INFO] [stdout] | [INFO] [stdout] 250 | Ok((try!(map_canon(header)), CanonicalizationType::Simple)), [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/events.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn new(next_stage: &'a mut MessageParserStage) -> Self; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/message_scanner.rs:17:26 [INFO] [stdout] | [INFO] [stdout] 17 | next_stage: &'a mut (MessageParserStage + 'a), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/message_scanner.rs:33:32 [INFO] [stdout] | [INFO] [stdout] 33 | fn new(next_stage: &'a mut MessageParserStage) -> MessageScanner<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_parser.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_parser.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | fn new(next_stage: &'a mut MessageParserStage) -> HeaderParser<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_decoder.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/header_decoder.rs:11:32 [INFO] [stdout] | [INFO] [stdout] 11 | fn new(next_stage: &'a mut MessageParserStage) -> HeaderDecoder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/reader_parser.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/reader_parser.rs:14:36 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(next_stage: &'a mut MessageParserStage, reader: R) -> ReaderParser<'a, R> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim_checker.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | next_stage: &'a mut (MessageParserStage + 'a) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim_checker.rs:42:32 [INFO] [stdout] | [INFO] [stdout] 42 | fn new(next_stage: &'a mut MessageParserStage) -> DkimChecker<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MessageParserStage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `MessageParserFilter` is imported redundantly [INFO] [stdout] --> src/dkim_checker.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 4 | use events::{MessageParserStage,MessageParserFilter}; [INFO] [stdout] | ------------------- the item `MessageParserFilter` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use events::MessageParserFilter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/canonicalizer.rs:14:58 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn body(canon_type: CanonicalizationType) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/canonicalizer.rs:20:58 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn head(canon_type: CanonicalizationType) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/dkim/canonicalizer.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 50 | for _ in (0 .. self.pending_newlines ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/dkim/canonicalizer.rs:86:18 [INFO] [stdout] | [INFO] [stdout] 86 | for _ in (0 .. self.pending_newlines ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/mod.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | body_canon: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BodyCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead [INFO] [stdout] --> src/rfc2047.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dkim/mod.rs:106:23 [INFO] [stdout] | [INFO] [stdout] 106 | header_canon: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn HeaderCanonicalizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `MissingTag` is imported redundantly [INFO] [stdout] --> src/dkim/mod.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 19 | use self::DkimSignatureParseError::MissingTag; [INFO] [stdout] | ----------------------------------------- the item `MissingTag` is already imported here [INFO] [stdout] ... [INFO] [stdout] 208 | use self::DkimSignatureParseError::MissingTag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead [INFO] [stdout] --> src/dkim/canonicalizer.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead [INFO] [stdout] --> src/rfc2047.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead [INFO] [stdout] --> src/dkim/canonicalizer.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/header_parser.rs:80:49 [INFO] [stdout] | [INFO] [stdout] 80 | let trimmed = &value.trim().trim_right_matches(':'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/header_parser.rs:80:49 [INFO] [stdout] | [INFO] [stdout] 80 | let trimmed = &value.trim().trim_right_matches(':'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rfc2047.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | for (start,end) in char_regex.find_iter(content) { [INFO] [stdout] | ^^^^^^^^^^^ ----------------------------- this expression has type `regex::Match<'_>` [INFO] [stdout] | | [INFO] [stdout] | expected struct `regex::Match`, found tuple [INFO] [stdout] | [INFO] [stdout] = note: expected struct `regex::Match<'_>` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rfc2047.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | for (start,end) in char_regex.find_iter(content) { [INFO] [stdout] | ^^^^^^^^^^^ ----------------------------- this expression has type `regex::Match<'_>` [INFO] [stdout] | | [INFO] [stdout] | expected struct `regex::Match`, found tuple [INFO] [stdout] | [INFO] [stdout] = note: expected struct `regex::Match<'_>` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:25 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:25 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:37 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:49 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:37 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for reference `®ex::Captures<'_>` in the current scope [INFO] [stdout] --> src/rfc2047.rs:91:49 [INFO] [stdout] | [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] | ^^ method not found in `®ex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rfc2047.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 86 | fn from_rfc2047(&self) -> String { [INFO] [stdout] | ------ expected `std::string::String` because of return type [INFO] [stdout] ... [INFO] [stdout] 90 | / encoded_word_re.replace_all(&ws_removed, |caps: &Captures| { [INFO] [stdout] 91 | | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] 92 | | (Some(charset), Some(encoding), Some(content)) => { [INFO] [stdout] 93 | | match decode_word(charset, encoding, content) { [INFO] [stdout] ... | [INFO] [stdout] 99 | | } [INFO] [stdout] 100 | | }) [INFO] [stdout] | |__________^ expected struct `std::string::String`, found enum `Cow` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::string::String` [INFO] [stdout] found enum `Cow<'_, str>` [INFO] [stdout] help: try using a conversion method [INFO] [stdout] | [INFO] [stdout] 90 | encoded_word_re.replace_all(&ws_removed, |caps: &Captures| { [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] 92 | (Some(charset), Some(encoding), Some(content)) => { [INFO] [stdout] 93 | match decode_word(charset, encoding, content) { [INFO] [stdout] 94 | Ok(decoded) => decoded, [INFO] [stdout] 95 | Err(_) => self.to_string() [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rfc2047.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 86 | fn from_rfc2047(&self) -> String { [INFO] [stdout] | ------ expected `std::string::String` because of return type [INFO] [stdout] ... [INFO] [stdout] 90 | / encoded_word_re.replace_all(&ws_removed, |caps: &Captures| { [INFO] [stdout] 91 | | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] 92 | | (Some(charset), Some(encoding), Some(content)) => { [INFO] [stdout] 93 | | match decode_word(charset, encoding, content) { [INFO] [stdout] ... | [INFO] [stdout] 99 | | } [INFO] [stdout] 100 | | }) [INFO] [stdout] | |__________^ expected struct `std::string::String`, found enum `Cow` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::string::String` [INFO] [stdout] found enum `Cow<'_, str>` [INFO] [stdout] help: try using a conversion method [INFO] [stdout] | [INFO] [stdout] 90 | encoded_word_re.replace_all(&ws_removed, |caps: &Captures| { [INFO] [stdout] 91 | match (caps.at(1), caps.at(2), caps.at(3)) { [INFO] [stdout] 92 | (Some(charset), Some(encoding), Some(content)) => { [INFO] [stdout] 93 | match decode_word(charset, encoding, content) { [INFO] [stdout] 94 | Ok(decoded) => decoded, [INFO] [stdout] 95 | Err(_) => self.to_string() [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/dkim/mod.rs:184:31 [INFO] [stdout] | [INFO] [stdout] 184 | let tags = dkim_signature.trim_right_matches(';').split(';'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope [INFO] [stdout] --> src/dkim/mod.rs:246:47 [INFO] [stdout] | [INFO] [stdout] 246 | Some(groups) => match (groups.at(1), groups.at(2)) { [INFO] [stdout] | ^^ method not found in `regex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope [INFO] [stdout] --> src/dkim/mod.rs:246:61 [INFO] [stdout] | [INFO] [stdout] 246 | Some(groups) => match (groups.at(1), groups.at(2)) { [INFO] [stdout] | ^^ method not found in `regex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&Vec` to `Vec` [INFO] [stdout] --> src/dkim/canonicalizer.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | output = output + input; [INFO] [stdout] | ------ ^ ----- &Vec [INFO] [stdout] | | [INFO] [stdout] | Vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 2]` to `Vec` [INFO] [stdout] --> src/dkim/canonicalizer.rs:188:16 [INFO] [stdout] | [INFO] [stdout] 188 | result + b"\r\n" [INFO] [stdout] | ------ ^ ------- &[u8; 2] [INFO] [stdout] | | [INFO] [stdout] | Vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ascii::AsciiExt` [INFO] [stdout] --> src/rfc2047.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ascii::AsciiExt` [INFO] [stdout] --> src/dkim/canonicalizer.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToBase64` [INFO] [stdout] --> src/dkim/mod.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use self::rustc_serialize::base64::{ToBase64,Config}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/dkim/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 17 previous errors; 38 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0369, E0412, E0425, E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `mailcheck` [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/dkim/mod.rs:184:31 [INFO] [stdout] | [INFO] [stdout] 184 | let tags = dkim_signature.trim_right_matches(';').split(';'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope [INFO] [stdout] --> src/dkim/mod.rs:246:47 [INFO] [stdout] | [INFO] [stdout] 246 | Some(groups) => match (groups.at(1), groups.at(2)) { [INFO] [stdout] | ^^ method not found in `regex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: no method named `at` found for struct `regex::Captures<'_>` in the current scope [INFO] [stdout] --> src/dkim/mod.rs:246:61 [INFO] [stdout] | [INFO] [stdout] 246 | Some(groups) => match (groups.at(1), groups.at(2)) { [INFO] [stdout] | ^^ method not found in `regex::Captures<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&Vec` to `Vec` [INFO] [stdout] --> src/dkim/canonicalizer.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | output = output + input; [INFO] [stdout] | ------ ^ ----- &Vec [INFO] [stdout] | | [INFO] [stdout] | Vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 2]` to `Vec` [INFO] [stdout] --> src/dkim/canonicalizer.rs:188:16 [INFO] [stdout] | [INFO] [stdout] 188 | result + b"\r\n" [INFO] [stdout] | ------ ^ ------- &[u8; 2] [INFO] [stdout] | | [INFO] [stdout] | Vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 15]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:200:51 [INFO] [stdout] | [INFO] [stdout] 200 | result.extend(canon.canonicalize(&(Vec::new() + b"Test\r\nTest \r\n\r\n"))); [INFO] [stdout] | ---------- ^ ------------------------ &[u8; 15] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 21]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:201:51 [INFO] [stdout] | [INFO] [stdout] 201 | result.extend(canon.canonicalize(&(Vec::new() + b"\r\none last line\r\n\r\n"))); [INFO] [stdout] | ---------- ^ ------------------------------ &[u8; 21] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 15]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:215:51 [INFO] [stdout] | [INFO] [stdout] 215 | result.extend(canon.canonicalize(&(Vec::new() + b"Test\r\nTest \r\n\r\n"))); [INFO] [stdout] | ---------- ^ ------------------------ &[u8; 15] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 22]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:216:51 [INFO] [stdout] | [INFO] [stdout] 216 | result.extend(canon.canonicalize(&(Vec::new() + b"\r\none last \t line\r\n\r\n"))); [INFO] [stdout] | ---------- ^ -------------------------------- &[u8; 22] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 32]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:232:61 [INFO] [stdout] | [INFO] [stdout] 232 | let result = canon.canonicalize(name, value, Vec::new() + raw); [INFO] [stdout] | ---------- ^ --- &[u8; 32] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `&[u8; 32]` to `Vec<_>` [INFO] [stdout] --> src/dkim/canonicalizer.rs:247:61 [INFO] [stdout] | [INFO] [stdout] 247 | let result = canon.canonicalize(name, value, Vec::new() + raw); [INFO] [stdout] | ---------- ^ --- &[u8; 32] [INFO] [stdout] | | [INFO] [stdout] | Vec<_> [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ascii::AsciiExt` [INFO] [stdout] --> src/rfc2047.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ascii::AsciiExt` [INFO] [stdout] --> src/dkim/canonicalizer.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToBase64` [INFO] [stdout] --> src/dkim/mod.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use self::rustc_serialize::base64::{ToBase64,Config}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/dkim/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 23 previous errors; 39 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0369, E0412, E0425, E0433, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "9a1100519997fe6a591e87ea63fd2f8bab7dd19a2ed39512f62f8e8517c4dbe3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a1100519997fe6a591e87ea63fd2f8bab7dd19a2ed39512f62f8e8517c4dbe3", kill_on_drop: false }` [INFO] [stdout] 9a1100519997fe6a591e87ea63fd2f8bab7dd19a2ed39512f62f8e8517c4dbe3