[INFO] fetching crate redis-sk 0.17.1...
[INFO] testing redis-sk-0.17.1 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate redis-sk 0.17.1 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate redis-sk 0.17.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate redis-sk 0.17.1
[INFO] tweaked toml for crates.io crate redis-sk 0.17.1 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate redis-sk 0.17.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate redis-sk 0.17.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:156:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | homepage = "https://github.com/mitsuhiko/redis-rs"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 | repository = "https://github.com/mitsuhiko/redis-rs"
[INFO] [stderr]     |              ---------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `redis-sk` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3
[INFO] running `Command { std: "docker" "start" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:156:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | homepage = "https://github.com/mitsuhiko/redis-rs"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 | repository = "https://github.com/mitsuhiko/redis-rs"
[INFO] [stderr]     |              ---------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `redis-sk` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.27
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.73
[INFO] [stderr]    Compiling libc v0.2.96
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling futures-core v0.3.15
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling slab v0.4.3
[INFO] [stderr]    Compiling futures-io v0.3.15
[INFO] [stderr]    Compiling pin-project-lite v0.2.6
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling cache-padded v1.1.1
[INFO] [stderr]    Compiling parking v2.0.0
[INFO] [stderr]    Compiling waker-fn v1.1.0
[INFO] [stderr]    Compiling event-listener v2.5.1
[INFO] [stderr]    Compiling concurrent-queue v1.2.2
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling fastrand v1.4.1
[INFO] [stderr]    Compiling once_cell v1.7.2
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling async-task v4.0.3
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling futures-task v0.3.15
[INFO] [stderr]    Compiling futures-sink v0.3.15
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling futures-channel v0.3.15
[INFO] [stderr]    Compiling matches v0.1.8
[INFO] [stderr]    Compiling tinyvec v1.2.0
[INFO] [stderr]    Compiling pin-project-lite v0.1.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling atomic-waker v1.0.0
[INFO] [stderr]    Compiling async-mutex v1.4.0
[INFO] [stderr]    Compiling value-bag v1.0.0-alpha.7
[INFO] [stderr]    Compiling futures-macro v0.3.15
[INFO] [stderr]    Compiling futures-util v0.3.15
[INFO] [stderr]    Compiling async-channel v1.6.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.5
[INFO] [stderr]    Compiling async-trait v0.1.50
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling async-lock v2.4.0
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.37
[INFO] [stderr]    Compiling socket2 v0.4.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling itoa v0.4.7
[INFO] [stderr]    Compiling sha1 v0.6.0
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling futures-lite v1.12.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.19
[INFO] [stderr]    Compiling async-executor v1.4.1
[INFO] [stderr]    Compiling blocking v1.0.2
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling ctor v0.1.20
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling polling v2.0.3
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling async-io v1.4.1
[INFO] [stderr]    Compiling mio-uds v0.6.8
[INFO] [stderr]    Compiling tokio v0.2.25
[INFO] [stderr]    Compiling async-global-executor v2.0.2
[INFO] [stderr]    Compiling async-std v1.9.0
[INFO] [stderr]    Compiling combine v4.5.2
[INFO] [stderr]    Compiling tokio-util v0.3.1
[INFO] [stderr]    Compiling redis-sk v0.17.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/aio.rs:462:18
[INFO] [stdout]     |
[INFO] [stdout] 462 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 463 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 464 | |                 "Redis server refused to switch database"
[INFO] [stdout] 465 | |             )),
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/streams.rs:582:34
[INFO] [stdout]     |
[INFO] [stdout] 582 |   ...                   _ => fail!((
[INFO] [stdout]     |  ____________________________-
[INFO] [stdout] 583 | | ...                       crate::types::ErrorKind::TypeError,
[INFO] [stdout] 584 | | ...                       "Cannot parse redis data (3)"
[INFO] [stdout] 585 | | ...                   )),
[INFO] [stdout]     | |________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/streams.rs:587:30
[INFO] [stdout]     |
[INFO] [stdout] 587 |                           _ => fail!((
[INFO] [stdout]     |  ______________________________-
[INFO] [stdout] 588 | |                             crate::types::ErrorKind::TypeError,
[INFO] [stdout] 589 | |                             "Cannot parse redis data (2)"
[INFO] [stdout] 590 | |                         )),
[INFO] [stdout]     | |__________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/streams.rs:594:18
[INFO] [stdout]     |
[INFO] [stdout] 594 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 595 | |                 crate::types::ErrorKind::TypeError,
[INFO] [stdout] 596 | |                 "Cannot parse redis data (1)"
[INFO] [stdout] 597 | |             )),
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/cmd.rs:665:18
[INFO] [stdout]     |
[INFO] [stdout] 665 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 666 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 667 | |                 "Invalid response when parsing multi response"
[INFO] [stdout] 668 | |             )),
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 | macro_rules! fail {
[INFO] [stdout]   4 |     ($expr:expr) => {
[INFO] [stdout]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |             Err(_) => fail!((ErrorKind::InvalidClientConfig, "Redis URL did not parse")),
[INFO] [stdout]     |                       ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 | macro_rules! fail {
[INFO] [stdout]   4 |     ($expr:expr) => {
[INFO] [stdout]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:153:23
[INFO] [stdout]     |
[INFO] [stdout] 153 |             Err(_) => fail!((ErrorKind::InvalidClientConfig, "Redis URL did not parse")),
[INFO] [stdout]     |                       ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 | macro_rules! fail {
[INFO] [stdout]   4 |     ($expr:expr) => {
[INFO] [stdout]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |         None => fail!((ErrorKind::InvalidClientConfig, "Missing hostname")),
[INFO] [stdout]     |                 ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |                   Err(_) => fail!((
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 208 | |                     ErrorKind::InvalidClientConfig,
[INFO] [stdout] 209 | |                     "Username is not valid UTF-8 string"
[INFO] [stdout] 210 | |                 )),
[INFO] [stdout]     | |__________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:216:27
[INFO] [stdout]     |
[INFO] [stdout] 216 |                   Err(_) => fail!((
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 217 | |                     ErrorKind::InvalidClientConfig,
[INFO] [stdout] 218 | |                     "Password is not valid UTF-8 string"
[INFO] [stdout] 219 | |                 )),
[INFO] [stdout]     | |__________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:258:18
[INFO] [stdout]     |
[INFO] [stdout] 258 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 259 | |                 ErrorKind::InvalidClientConfig,
[INFO] [stdout] 260 | |                 "URL provided is not a redis URL"
[INFO] [stdout] 261 | |             )),
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   3 |   macro_rules! fail {
[INFO] [stdout]   4 |       ($expr:expr) => {
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:556:18
[INFO] [stdout]     |
[INFO] [stdout] 556 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 557 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 558 | |                 "Redis server refused to switch database"
[INFO] [stdout] 559 | |             )),
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:62:5
[INFO] [stdout]     |
[INFO] [stdout]  62 | /     opaque!(any_send_sync_partial_state(choice((
[INFO] [stdout]  63 | |         any().then_partial(move |&mut b| {
[INFO] [stdout]  64 | |             let line = || {
[INFO] [stdout]  65 | |                 recognize(take_until_bytes(&b"\r\n"[..]).with(take(2).map(|_| ()))).and_then(
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |         ))))
[INFO] [stdout] 153 | |     ))))
[INFO] [stdout]     | |________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `opaque`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `opaque` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num_internal`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1026:9
[INFO] [stdout]      |
[INFO] [stdout] 1026 |           from_redis_value_for_num_internal!(u8, v)
[INFO] [stdout]      |           ----------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num_internal`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1026:9
[INFO] [stdout]      |
[INFO] [stdout] 1026 |           from_redis_value_for_num_internal!(u8, v)
[INFO] [stdout]      |           ----------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num_internal`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1026:9
[INFO] [stdout]      |
[INFO] [stdout] 1026 |           from_redis_value_for_num_internal!(u8, v)
[INFO] [stdout]      |           ----------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1034:1
[INFO] [stdout]      |
[INFO] [stdout] 1034 |   from_redis_value_for_num!(i8);
[INFO] [stdout]      |   ----------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1034:1
[INFO] [stdout]      |
[INFO] [stdout] 1034 |   from_redis_value_for_num!(i8);
[INFO] [stdout]      |   ----------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1034:1
[INFO] [stdout]      |
[INFO] [stdout] 1034 |   from_redis_value_for_num!(i8);
[INFO] [stdout]      |   ----------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1035:1
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   from_redis_value_for_num!(i16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1035:1
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   from_redis_value_for_num!(i16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1035:1
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   from_redis_value_for_num!(i16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1036:1
[INFO] [stdout]      |
[INFO] [stdout] 1036 |   from_redis_value_for_num!(u16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1036:1
[INFO] [stdout]      |
[INFO] [stdout] 1036 |   from_redis_value_for_num!(u16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1036:1
[INFO] [stdout]      |
[INFO] [stdout] 1036 |   from_redis_value_for_num!(u16);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1037:1
[INFO] [stdout]      |
[INFO] [stdout] 1037 |   from_redis_value_for_num!(i32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1037:1
[INFO] [stdout]      |
[INFO] [stdout] 1037 |   from_redis_value_for_num!(i32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1037:1
[INFO] [stdout]      |
[INFO] [stdout] 1037 |   from_redis_value_for_num!(i32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1038:1
[INFO] [stdout]      |
[INFO] [stdout] 1038 |   from_redis_value_for_num!(u32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1038:1
[INFO] [stdout]      |
[INFO] [stdout] 1038 |   from_redis_value_for_num!(u32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1038:1
[INFO] [stdout]      |
[INFO] [stdout] 1038 |   from_redis_value_for_num!(u32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1039:1
[INFO] [stdout]      |
[INFO] [stdout] 1039 |   from_redis_value_for_num!(i64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1039:1
[INFO] [stdout]      |
[INFO] [stdout] 1039 |   from_redis_value_for_num!(i64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1039:1
[INFO] [stdout]      |
[INFO] [stdout] 1039 |   from_redis_value_for_num!(i64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1040:1
[INFO] [stdout]      |
[INFO] [stdout] 1040 |   from_redis_value_for_num!(u64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1040:1
[INFO] [stdout]      |
[INFO] [stdout] 1040 |   from_redis_value_for_num!(u64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1040:1
[INFO] [stdout]      |
[INFO] [stdout] 1040 |   from_redis_value_for_num!(u64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1041:1
[INFO] [stdout]      |
[INFO] [stdout] 1041 |   from_redis_value_for_num!(f32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1041:1
[INFO] [stdout]      |
[INFO] [stdout] 1041 |   from_redis_value_for_num!(f32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1041:1
[INFO] [stdout]      |
[INFO] [stdout] 1041 |   from_redis_value_for_num!(f32);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1042:1
[INFO] [stdout]      |
[INFO] [stdout] 1042 |   from_redis_value_for_num!(f64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1042:1
[INFO] [stdout]      |
[INFO] [stdout] 1042 |   from_redis_value_for_num!(f64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1042:1
[INFO] [stdout]      |
[INFO] [stdout] 1042 |   from_redis_value_for_num!(f64);
[INFO] [stdout]      |   ------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1043:1
[INFO] [stdout]      |
[INFO] [stdout] 1043 |   from_redis_value_for_num!(isize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1043:1
[INFO] [stdout]      |
[INFO] [stdout] 1043 |   from_redis_value_for_num!(isize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1043:1
[INFO] [stdout]      |
[INFO] [stdout] 1043 |   from_redis_value_for_num!(isize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1044:1
[INFO] [stdout]      |
[INFO] [stdout] 1044 |   from_redis_value_for_num!(usize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1044:1
[INFO] [stdout]      |
[INFO] [stdout] 1044 |   from_redis_value_for_num!(usize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_num`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1044:1
[INFO] [stdout]      |
[INFO] [stdout] 1044 |   from_redis_value_for_num!(usize);
[INFO] [stdout]      |   -------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1057:21
[INFO] [stdout]      |
[INFO] [stdout] 1057 |                       invalid_type_error!(v, "Response status not valid boolean");
[INFO] [stdout]      |                       ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1066:21
[INFO] [stdout]      |
[INFO] [stdout] 1066 |                       invalid_type_error!(v, "Response type not bool compatible.");
[INFO] [stdout]      |                       ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1070:18
[INFO] [stdout]      |
[INFO] [stdout] 1070 |               _ => invalid_type_error!(v, "Response type not bool compatible."),
[INFO] [stdout]      |                    ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1081:18
[INFO] [stdout]      |
[INFO] [stdout] 1081 |               _ => invalid_type_error!(v, "Response type not string compatible."),
[INFO] [stdout]      |                    -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1093:25
[INFO] [stdout]      |
[INFO] [stdout] 1093 |                   None => invalid_type_error!(v, "Response type not vector compatible."),
[INFO] [stdout]      |                           -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `invalid_type_error`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1097:18
[INFO] [stdout]      |
[INFO] [stdout] 1097 |               _ => invalid_type_error!(v, "Response type not vector compatible."),
[INFO] [stdout]      |                    -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/macros.rs:5:54
[INFO] [stdout]      |
[INFO] [stdout]    3 | / macro_rules! fail {
[INFO] [stdout]    4 | |     ($expr:expr) => {
[INFO] [stdout]    5 | |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]      | |                                                      ^
[INFO] [stdout]    6 | |     };
[INFO] [stdout]    7 | | }
[INFO] [stdout]      | |_- this warning originates in the macro `fail` which comes from the expansion of the macro `from_redis_value_for_tuple`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/types.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 |   from_redis_value_for_tuple! { T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, }
[INFO] [stdout]      |   ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `fail`
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied
[INFO] [stdout]    --> src/script.rs:177:30
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     load_cmd.query_async(con).await?;
[INFO] [stdout]     |                              ^^^^^^^^^^^ the trait `FromRedisValue` is not implemented for `!`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromRedisValue`:
[INFO] [stdout]               ()
[INFO] [stdout]               (T12,)
[INFO] [stdout]               (T11, T12)
[INFO] [stdout]               (T10, T11, T12)
[INFO] [stdout]               (T9, T10, T11, T12)
[INFO] [stdout]               (T8, T9, T10, T11, T12)
[INFO] [stdout]               (T7, T8, T9, T10, T11, T12)
[INFO] [stdout]               (T6, T7, T8, T9, T10, T11, T12)
[INFO] [stdout]             and 38 others
[INFO] [stdout]     = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #148922 <https://github.com/rust-lang/rust/issues/148922> for more information)
[INFO] [stdout]     = help: you might have intended to use the type `()` here instead
[INFO] [stdout] note: required by a bound in `Cmd::query_async`
[INFO] [stdout]    --> src/cmd.rs:392:36
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Cmd {
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub async fn query_async<C, T: FromRedisValue>(&self, con: &mut C) -> RedisResult<T>
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ required by this bound in `Cmd::query_async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied
[INFO] [stdout]    --> src/script.rs:143:30
[INFO] [stdout]     |
[INFO] [stdout] 143 | ...                   .query(con)?;
[INFO] [stdout]     |                        ^^^^^ the trait `FromRedisValue` is not implemented for `!`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromRedisValue`:
[INFO] [stdout]               ()
[INFO] [stdout]               (T12,)
[INFO] [stdout]               (T11, T12)
[INFO] [stdout]               (T10, T11, T12)
[INFO] [stdout]               (T9, T10, T11, T12)
[INFO] [stdout]               (T8, T9, T10, T11, T12)
[INFO] [stdout]               (T7, T8, T9, T10, T11, T12)
[INFO] [stdout]               (T6, T7, T8, T9, T10, T11, T12)
[INFO] [stdout]             and 38 others
[INFO] [stdout]     = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #148922 <https://github.com/rust-lang/rust/issues/148922> for more information)
[INFO] [stdout]     = help: you might have intended to use the type `()` here instead
[INFO] [stdout] note: required by a bound in `Cmd::query`
[INFO] [stdout]    --> src/cmd.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Cmd {
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub fn query<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike) -> RedisResult<T> {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^ required by this bound in `Cmd::query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redis-sk` (lib) due to 2 previous errors; 182 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3", kill_on_drop: false }`
[INFO] [stdout] 02e9543d8695940b4f4fe6e4de24b02d9188bac5be30fcca2324180ec9ef40f3
