[INFO] fetching crate trezm-redis 0.15.2-alpha.0...
[INFO] testing trezm-redis-0.15.2-alpha.0 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate trezm-redis 0.15.2-alpha.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate trezm-redis 0.15.2-alpha.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate trezm-redis 0.15.2-alpha.0
[INFO] tweaked toml for crates.io crate trezm-redis 0.15.2-alpha.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate trezm-redis 0.15.2-alpha.0 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate trezm-redis 0.15.2-alpha.0 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5e558e10c5ef882a269ca418537794001e9fa114cac6f2c2ad11b024cd71a361
[INFO] running `Command { std: "docker" "start" "-a" "5e558e10c5ef882a269ca418537794001e9fa114cac6f2c2ad11b024cd71a361", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5e558e10c5ef882a269ca418537794001e9fa114cac6f2c2ad11b024cd71a361", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e558e10c5ef882a269ca418537794001e9fa114cac6f2c2ad11b024cd71a361", kill_on_drop: false }`
[INFO] [stdout] 5e558e10c5ef882a269ca418537794001e9fa114cac6f2c2ad11b024cd71a361
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3d7a581767de6c35210c730414c483f51083b5bec623ee2b1d85455db4f0901f
[INFO] running `Command { std: "docker" "start" "-a" "3d7a581767de6c35210c730414c483f51083b5bec623ee2b1d85455db4f0901f", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling libc v0.2.69
[INFO] [stderr]    Compiling proc-macro2 v1.0.10
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.18
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling slab v0.4.2
[INFO] [stderr]    Compiling futures-core v0.3.4
[INFO] [stderr]    Compiling proc-macro-nested v0.1.4
[INFO] [stderr]    Compiling futures-sink v0.3.4
[INFO] [stderr]    Compiling pin-project-lite v0.1.4
[INFO] [stderr]    Compiling fnv v1.0.6
[INFO] [stderr]    Compiling futures-io v0.3.4
[INFO] [stderr]    Compiling smallvec v1.4.0
[INFO] [stderr]    Compiling proc-macro-hack v0.5.15
[INFO] [stderr]    Compiling bytes v0.5.4
[INFO] [stderr]    Compiling matches v0.1.8
[INFO] [stderr]    Compiling futures-task v0.3.4
[INFO] [stderr]    Compiling unicode-bidi v0.3.4
[INFO] [stderr]    Compiling futures-timer v2.0.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.12
[INFO] [stderr]    Compiling once_cell v1.3.1
[INFO] [stderr]    Compiling itoa v0.4.5
[INFO] [stderr]    Compiling futures-channel v0.3.4
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling sha1 v0.6.0
[INFO] [stderr]    Compiling dtoa v0.4.5
[INFO] [stderr]    Compiling kv-log-macro v1.0.4
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling async-task v1.3.1
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling crossbeam-channel v0.4.2
[INFO] [stderr]    Compiling idna v0.2.0
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling url v2.1.1
[INFO] [stderr]    Compiling mio-uds v0.6.7
[INFO] [stderr]    Compiling async-std v1.5.0
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.4
[INFO] [stderr]    Compiling async-trait v0.1.30
[INFO] [stderr]    Compiling tokio v0.2.19
[INFO] [stderr]    Compiling futures-util v0.3.4
[INFO] [stderr]    Compiling tokio-util v0.2.0
[INFO] [stderr]    Compiling combine v4.1.0
[INFO] [stderr]    Compiling trezm-redis v0.15.2-alpha.0 (/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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/aio.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/cmd.rs:567:18
[INFO] [stdout]     |
[INFO] [stdout] 567 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 568 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 569 | |                 "Invalid response when parsing multi response"
[INFO] [stdout] 570 | |             )),
[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: this warning originates in the macro `fail` (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]  5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]    |                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/connection.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             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]    = note: this warning originates in the macro `fail` (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]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:108:23
[INFO] [stdout]     |
[INFO] [stdout] 108 |             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]     = note: this warning originates in the macro `fail` (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]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |                 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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |                   Err(_) => fail!((
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 133 | |                     ErrorKind::InvalidClientConfig,
[INFO] [stdout] 134 | |                     "Password is not valid UTF-8 string"
[INFO] [stdout] 135 | |                 )),
[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: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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: this warning originates in the macro `fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | /     pub async fn invoke_async<C, T>(&self, con: &mut C) -> RedisResult<T>
[INFO] [stdout] 155 | |     where
[INFO] [stdout] 156 | |         C: crate::aio::ConnectionLike,
[INFO] [stdout] 157 | |         T: FromRedisValue,
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:176:30
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async(con).await?;
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async::<_, ()>(con).await?;
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike) -> RedisResult<T> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 | ...                   .query(con)?;
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 142 |                             .query::<()>(con)?;
[INFO] [stdout]     |                                   ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/aio.rs:521:1
[INFO] [stdout]     |
[INFO] [stdout] 521 | / pin_project! {
[INFO] [stdout] 522 | |     struct PipelineSink<T, I, E> {
[INFO] [stdout] 523 | |         #[pin]
[INFO] [stdout] 524 | |         sink_stream: T,
[INFO] [stdout] ...   |
[INFO] [stdout] 528 | | }
[INFO] [stdout]     | |_^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `$crate::pin_project` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.65s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: trezm-redis v0.15.2-alpha.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "3d7a581767de6c35210c730414c483f51083b5bec623ee2b1d85455db4f0901f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d7a581767de6c35210c730414c483f51083b5bec623ee2b1d85455db4f0901f", kill_on_drop: false }`
[INFO] [stdout] 3d7a581767de6c35210c730414c483f51083b5bec623ee2b1d85455db4f0901f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e124a4205c7b9cc34d06b3c1704226739f452cd7aed9464111011b26cb0bee6
[INFO] running `Command { std: "docker" "start" "-a" "6e124a4205c7b9cc34d06b3c1704226739f452cd7aed9464111011b26cb0bee6", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.106
[INFO] [stderr]    Compiling ryu v1.0.4
[INFO] [stderr]    Compiling aho-corasick v0.7.10
[INFO] [stderr]    Compiling regex-syntax v0.6.17
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling either v1.5.3
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]    Compiling crossbeam-queue v0.2.1
[INFO] [stderr]    Compiling termcolor v1.1.0
[INFO] [stderr]    Compiling unicode-width v0.1.7
[INFO] [stderr]    Compiling bytes v0.4.12
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling futures v0.1.29
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]    Compiling futures-executor v0.3.4
[INFO] [stderr]    Compiling serde_derive v1.0.106
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling clap v2.33.0
[INFO] [stderr]    Compiling oorandom v11.1.0
[INFO] [stderr]    Compiling futures v0.3.4
[INFO] [stderr]    Compiling assert_approx_eq v1.1.0
[INFO] [stderr]    Compiling rayon v1.3.0
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/aio.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/cmd.rs:567:18
[INFO] [stdout]     |
[INFO] [stdout] 567 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 568 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 569 | |                 "Invalid response when parsing multi response"
[INFO] [stdout] 570 | |             )),
[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: this warning originates in the macro `fail` (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]  5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]    |                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/connection.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             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]    = note: this warning originates in the macro `fail` (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]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:108:23
[INFO] [stdout]     |
[INFO] [stdout] 108 |             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]     = note: this warning originates in the macro `fail` (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]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |                 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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |                   Err(_) => fail!((
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 133 | |                     ErrorKind::InvalidClientConfig,
[INFO] [stdout] 134 | |                     "Password is not valid UTF-8 string"
[INFO] [stdout] 135 | |                 )),
[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: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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: this warning originates in the macro `fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | /     pub async fn invoke_async<C, T>(&self, con: &mut C) -> RedisResult<T>
[INFO] [stdout] 155 | |     where
[INFO] [stdout] 156 | |         C: crate::aio::ConnectionLike,
[INFO] [stdout] 157 | |         T: FromRedisValue,
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:176:30
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async(con).await?;
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async::<_, ()>(con).await?;
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike) -> RedisResult<T> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 | ...                   .query(con)?;
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 142 |                             .query::<()>(con)?;
[INFO] [stdout]     |                                   ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/aio.rs:521:1
[INFO] [stdout]     |
[INFO] [stdout] 521 | / pin_project! {
[INFO] [stdout] 522 | |     struct PipelineSink<T, I, E> {
[INFO] [stdout] 523 | |         #[pin]
[INFO] [stdout] 524 | |         sink_stream: T,
[INFO] [stdout] ...   |
[INFO] [stdout] 528 | | }
[INFO] [stdout]     | |_^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `$crate::pin_project` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling tokio-io v0.1.13
[INFO] [stderr]    Compiling criterion-plot v0.4.2
[INFO] [stderr]    Compiling plotters v0.2.12
[INFO] [stderr]    Compiling regex v1.3.7
[INFO] [stderr]    Compiling env_logger v0.5.13
[INFO] [stderr]    Compiling quickcheck v0.6.2
[INFO] [stderr]    Compiling bstr v0.2.12
[INFO] [stderr]    Compiling serde_json v1.0.51
[INFO] [stderr]    Compiling partial-io v0.3.1
[INFO] [stderr]    Compiling csv v1.1.3
[INFO] [stderr]    Compiling tinytemplate v1.0.4
[INFO] [stderr]    Compiling criterion v0.3.2
[INFO] [stderr]    Compiling trezm-redis v0.15.2-alpha.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> examples/async-await.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use redis::AsyncCommands;
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> examples/async-pub-sub.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use redis::AsyncCommands;
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> examples/basic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use redis::{self, transaction, Commands};
[INFO] [stdout]   |             ^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/support/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/parser.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use redis::Value;
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/test_async_async_std.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/support/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unresolved item through its public re-export instead
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::redis;
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> examples/basic.rs:123:58
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let (new_val,): (isize,) = transaction(con, &[key], |con, pipe| {
[INFO] [stdout]     |                                                          ^^^
[INFO] [stdout] 124 |         // load the old value, so we know what to increment.
[INFO] [stdout] 125 |         let val: isize = con.get(key)?;
[INFO] [stdout]     |                          --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let (new_val,): (isize,) = transaction(con, &[key], |con: /* Type */, pipe| {
[INFO] [stdout]     |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> examples/basic.rs:123:63
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let (new_val,): (isize,) = transaction(con, &[key], |con, pipe| {
[INFO] [stdout]     |                                                               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |         pipe.set(key, val + 1).ignore().get(key).query(con)
[INFO] [stdout]     |         ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let (new_val,): (isize,) = transaction(con, &[key], |con, pipe: /* Type */| {
[INFO] [stdout]     |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> examples/basic.rs:160:34
[INFO] [stdout]     |
[INFO] [stdout] 160 |             println!("  {}: {}", err.category(), err);
[INFO] [stdout]     |                                  ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> examples/geospatial.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/test_types.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use redis::ToRedisArgs;
[INFO] [stdout]   |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/test_types.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     use redis::{FromRedisValue, InfoDict, Value};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/test_types.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     use redis::{ErrorKind, FromRedisValue, Value};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/test_types.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use redis::{ErrorKind, FromRedisValue, Value};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/test_types.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use redis::{FromRedisValue, Value};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]   --> tests/test_types.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use redis::{FromRedisValue, Value};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]    --> tests/test_types.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     use redis::{ErrorKind, FromRedisValue, Value};
[INFO] [stdout]     |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]    --> tests/test_types.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |     use redis::ToRedisArgs;
[INFO] [stdout]     |         ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]  --> examples/async-pub-sub.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let client = redis::Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout]   |                  ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 1 + use trezm_redis::Client;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `Client`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 6 -     let client = redis::Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout] 6 +     let client = Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (example "basic") due to 4 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `trezm-redis` (example "geospatial") due to 1 previous error
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/test_basic.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/support/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unresolved item through its public re-export instead
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::redis;
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/support/mod.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     if err.is_connection_refusal() {
[INFO] [stdout]     |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/test_geospatial.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `redis`
[INFO] [stdout]  --> tests/support/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use redis;
[INFO] [stdout]   |     ^^^^^ no external crate `redis`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unresolved item through its public re-export instead
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::redis;
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]  --> examples/async-pub-sub.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut pubsub_conn = client.get_async_connection().await?.into_pubsub();
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/support/mod.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     if err.is_connection_refusal() {
[INFO] [stdout]     |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> examples/async-pub-sub.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  7 |     let mut publish_conn = client.get_async_connection().await?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     publish_conn.publish("wavephone", "banana").await?;
[INFO] [stdout]    |     ------------ type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `publish_conn` an explicit type
[INFO] [stdout]    |
[INFO] [stdout]  7 |     let mut publish_conn: /* Type */ = client.get_async_connection().await?;
[INFO] [stdout]    |                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/parser.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     .map(|x| ArbitraryValue(x.clone()))
[INFO] [stdout]    |                           ^                 - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     .map(|x: /* Type */| ArbitraryValue(x.clone()))
[INFO] [stdout]    |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/parser.rs:37:31
[INFO] [stdout]    |
[INFO] [stdout] 37 |                         .map(|xs| xs.into_iter().map(|x| x.0).collect())
[INFO] [stdout]    |                               ^^  -- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 37 |                         .map(|xs: /* Type */| xs.into_iter().map(|x| x.0).collect())
[INFO] [stdout]    |                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> examples/async-pub-sub.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let pubsub_msg: String = pubsub_stream.next().await.unwrap().get_payload()?;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]  --> examples/async-pub-sub.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | async fn main() -> redis::RedisResult<()> {
[INFO] [stdout]   |                    ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/test_async_async_std.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |             .and_then(|con| async move {
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 72 |                 let cmd = move || {
[INFO] [stdout] 73 |                     let mut con = con.clone();
[INFO] [stdout]    |                                   --- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 71 |             .and_then(|con: /* Type */| async move {
[INFO] [stdout]    |                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]  --> examples/async-await.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let client = redis::Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout]   |                  ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 1 + use trezm_redis::Client;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `Client`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let client = redis::Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout] 5 +     let client = Client::open("redis://127.0.0.1/").unwrap();
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/support/mod.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     if err.is_connection_refusal() {
[INFO] [stdout]     |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/test_async_async_std.rs:91:19
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .map(|result| {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 92 |                 assert_eq!(
[INFO] [stdout] 93 |                     result.as_ref().unwrap_err().kind(),
[INFO] [stdout]    |                     ------ type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .map(|result: /* Type */| {
[INFO] [stdout]    |                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/support/mod.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     if err.is_connection_refusal() {
[INFO] [stdout]     |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | /     block_on_all_using_async_std(async move {
[INFO] [stdout] 107 | |         let mut con = ctx.async_connection_async_std().await?;
[INFO] [stdout] 108 | |         let mut pipe = redis::pipe();
[INFO] [stdout] 109 | |         pipe.atomic()
[INFO] [stdout] ...   |
[INFO] [stdout] 125 | |             .await
[INFO] [stdout] 126 | |     })
[INFO] [stdout]     | |______^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]  --> examples/async-await.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut con = client.get_async_connection().await?;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 7 |
[INFO] [stdout] 8 |     con.set("key1", b"foo").await?;
[INFO] [stdout]   |     --- type must be known at this point
[INFO] [stdout]   |
[INFO] [stdout] help: consider giving `con` an explicit type
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut con: /* Type */ = client.get_async_connection().await?;
[INFO] [stdout]   |                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   --> examples/async-await.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     redis::cmd("SET")
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   --> examples/async-await.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let result = redis::cmd("MGET")
[INFO] [stdout]    |                  ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (example "async-pub-sub") due to 6 previous errors
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | /     block_on_all_using_async_std(async move {
[INFO] [stdout] 177 | |         ctx.multiplexed_async_connection_async_std()
[INFO] [stdout] 178 | |             .and_then(|con| {
[INFO] [stdout] 179 | |                 let cmds = (0..100).map(move |i| test_cmd(&con, i));
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |             .await
[INFO] [stdout] 186 | |     })
[INFO] [stdout]     | |______^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:195:24
[INFO] [stdout]     |
[INFO] [stdout] 195 |             .and_then(|con| {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 196 |                 let cmds = (0..100).map(move |i| {
[INFO] [stdout] 197 |                     let con = con.clone();
[INFO] [stdout]     |                               --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 195 |             .and_then(|con: /* Type */| {
[INFO] [stdout]     |                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]    --> tests/parser.rs:133:35
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let result = block_on_all(redis::parse_redis_value_async(&mut decoder, &mut partial_reader));
[INFO] [stdout]     |                                   ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `redis`
[INFO] [stdout]  --> examples/async-await.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 | async fn main() -> redis::RedisResult<()> {
[INFO] [stdout]   |                    ^^^^^ use of unresolved module or unlinked crate `redis`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `redis`, use `cargo add redis` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (example "async-await") due to 6 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (test "test_geospatial") due to 3 previous errors
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 | /     block_on_all_using_async_std(async move {
[INFO] [stdout] 194 | |         ctx.multiplexed_async_connection_async_std()
[INFO] [stdout] 195 | |             .and_then(|con| {
[INFO] [stdout] 196 | |                 let cmds = (0..100).map(move |i| {
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |             .await
[INFO] [stdout] 212 | |     })
[INFO] [stdout]     | |______^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:221:24
[INFO] [stdout]     |
[INFO] [stdout] 221 |             .and_then(|con| {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 222 |                 let cmds = (0..100).map(move |i| {
[INFO] [stdout] 223 |                     let mut con = con.clone();
[INFO] [stdout]     |                                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 221 |             .and_then(|con: /* Type */| {
[INFO] [stdout]     |                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/aio.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/cmd.rs:567:18
[INFO] [stdout]     |
[INFO] [stdout] 567 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 568 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 569 | |                 "Invalid response when parsing multi response"
[INFO] [stdout] 570 | |             )),
[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: this warning originates in the macro `fail` (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]  5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]    |                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/connection.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             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]    = note: this warning originates in the macro `fail` (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]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:108:23
[INFO] [stdout]     |
[INFO] [stdout] 108 |             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]     = note: this warning originates in the macro `fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (test "parser") due to 6 previous errors
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:5:54
[INFO] [stdout]     |
[INFO] [stdout]   5 |         return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |                 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]     = note: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |                   Err(_) => fail!((
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 133 | |                     ErrorKind::InvalidClientConfig,
[INFO] [stdout] 134 | |                     "Password is not valid UTF-8 string"
[INFO] [stdout] 135 | |                 )),
[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: this warning originates in the macro `fail` (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]   5 |           return Err(::std::convert::From::from($expr));
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection.rs:377:18
[INFO] [stdout]     |
[INFO] [stdout] 377 |               _ => fail!((
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 378 | |                 ErrorKind::ResponseError,
[INFO] [stdout] 379 | |                 "Redis server refused to switch database"
[INFO] [stdout] 380 | |             )),
[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: this warning originates in the macro `fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for reference `&'static str` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:12:22
[INFO] [stdout]     |
[INFO] [stdout]  12 |     assert_eq!("foo".is_single_arg(), true);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ method not found in `&'static str`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `&'static str` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:250:22
[INFO] [stdout]     |
[INFO] [stdout] 250 |             .map_ok(|results| {
[INFO] [stdout]     |                      ^^^^^^^
[INFO] [stdout] 251 |                 assert_eq!(results.len(), 100);
[INFO] [stdout]     |                            ------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 250 |             .map_ok(|results: /* Type */| {
[INFO] [stdout]     |                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 | /     block_on_all_using_async_std(async move {
[INFO] [stdout] 220 | |         ctx.multiplexed_async_connection_async_std()
[INFO] [stdout] 221 | |             .and_then(|con| {
[INFO] [stdout] 222 | |                 let cmds = (0..100).map(move |i| {
[INFO] [stdout] ...   |
[INFO] [stdout] 254 | |             .await
[INFO] [stdout] 255 | |     })
[INFO] [stdout]     | |______^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_basic.rs:401:73
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let response: (isize,) = redis::transaction(&mut con, &[key], |con, pipe| {
[INFO] [stdout]     |                                                                         ^^^^
[INFO] [stdout] 402 |         let val: isize = redis::cmd("GET").arg(key).query(con)?;
[INFO] [stdout] 403 |         pipe.cmd("SET")
[INFO] [stdout]     |         ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let response: (isize,) = redis::transaction(&mut con, &[key], |con, pipe: /* Type */| {
[INFO] [stdout]     |                                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for reference `&[&str]` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:13:23
[INFO] [stdout]     |
[INFO] [stdout]  13 |     assert_eq!(sslice.is_single_arg(), true);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ method not found in `&[&str]`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `&[&str]` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for reference `&[&[&str]]` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:14:26
[INFO] [stdout]     |
[INFO] [stdout]  14 |     assert_eq!(nestslice.is_single_arg(), true);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ method not found in `&[&[&str]]`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `&[&[&str]]` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_basic.rs:533:42
[INFO] [stdout]     |
[INFO] [stdout] 533 |             .subscribe(&["foo", "bar"], |msg| {
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |                         assert_eq!(msg.get_channel(), Ok("foo".to_string()));
[INFO] [stdout]     |                                    --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 533 |             .subscribe(&["foo", "bar"], |msg: /* Type */| {
[INFO] [stdout]     |                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for struct `Vec<&[&[&str]]>` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:15:24
[INFO] [stdout]     |
[INFO] [stdout]  15 |     assert_eq!(nestvec.is_single_arg(), true);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ method not found in `Vec<&[&[&str]]>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `Vec<&[&[&str]]>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for reference `&[u8; 12]` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:16:22
[INFO] [stdout]     |
[INFO] [stdout]  16 |     assert_eq!(bytes.is_single_arg(), true);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ method not found in `&[u8; 12]`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `&[u8; 12]` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/test_async_async_std.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 297 | /     block_on_all_using_async_std(async {
[INFO] [stdout] 298 | |         let mut con = ctx.multiplexed_async_connection_async_std().await?;
[INFO] [stdout] 299 | |         redis::Script::new("return {1, ARGV[1], true}")
[INFO] [stdout] 300 | |             .arg("hello")
[INFO] [stdout] ...   |
[INFO] [stdout] 307 | |             .await
[INFO] [stdout] 308 | |     })
[INFO] [stdout]     | |______^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for reference `&[&[u8; 12]]` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:17:30
[INFO] [stdout]     |
[INFO] [stdout]  17 |     assert_eq!(twobytesslice.is_single_arg(), false);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ method not found in `&[&[u8; 12]]`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `&[&[u8; 12]]` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_single_arg` found for struct `Vec<&[u8; 12]>` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:18:28
[INFO] [stdout]     |
[INFO] [stdout]  18 |     assert_eq!(twobytesvec.is_single_arg(), false);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ method not found in `Vec<&[u8; 12]>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:572:8
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn is_single_arg(&self) -> bool {
[INFO] [stdout]     |        ------------- the method is available for `Vec<&[u8; 12]>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ToRedisArgs` which provides `is_single_arg` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for type `i32` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:151:19
[INFO] [stdout]     |
[INFO] [stdout] 151 |     assert!(!5i32.to_redis_args().is_empty());
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |     fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |        ------------- the method is available for `i32` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (test "test_async_async_std") due to 13 previous errors
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for reference `&'static str` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:152:20
[INFO] [stdout]     |
[INFO] [stdout] 152 |     assert!(!"abc".to_redis_args().is_empty());
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |     fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |        ------------- the method is available for `&'static str` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for reference `&'static str` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:153:20
[INFO] [stdout]     |
[INFO] [stdout] 153 |     assert!(!"abc".to_redis_args().is_empty());
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |     fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |        ------------- the method is available for `&'static str` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for struct `String` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |     assert!(!String::from("x").to_redis_args().is_empty());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |     fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |        ------------- the method is available for `String` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (test "test_basic") due to 5 previous errors
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for struct `HashSet<T, S>` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 156 |       assert!(![5, 4]
[INFO] [stdout]     |  ______________-
[INFO] [stdout] 157 | |         .iter()
[INFO] [stdout] 158 | |         .cloned()
[INFO] [stdout] 159 | |         .collect::<HashSet<_>>()
[INFO] [stdout] 160 | |         .to_redis_args()
[INFO] [stdout]     | |_________-^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |       fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |          ------------- the method is available for `HashSet<{integer}>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for struct `BTreeSet<T, A>` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 163 |       assert!(![5, 4]
[INFO] [stdout]     |  ______________-
[INFO] [stdout] 164 | |         .iter()
[INFO] [stdout] 165 | |         .cloned()
[INFO] [stdout] 166 | |         .collect::<BTreeSet<_>>()
[INFO] [stdout] 167 | |         .to_redis_args()
[INFO] [stdout]     | |_________-^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |       fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |          ------------- the method is available for `BTreeSet<{integer}>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_redis_args` found for struct `BTreeMap<K, V, A>` in the current scope
[INFO] [stdout]    --> tests/test_types.rs:175:10
[INFO] [stdout]     |
[INFO] [stdout] 171 |       assert!(![("a", 5), ("b", 6), ("C", 7)]
[INFO] [stdout]     |  ______________-
[INFO] [stdout] 172 | |         .iter()
[INFO] [stdout] 173 | |         .cloned()
[INFO] [stdout] 174 | |         .collect::<BTreeMap<_, _>>()
[INFO] [stdout] 175 | |         .to_redis_args()
[INFO] [stdout]     | |_________-^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/types.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 |       fn to_redis_args(&self) -> Vec<Vec<u8>> {
[INFO] [stdout]     |          ------------- the method is available for `BTreeMap<&str, {integer}>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `write_redis_args` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/workdir/src/types.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 | /     fn write_redis_args<W>(&self, out: &mut W)
[INFO] [stdout] 557 | |     where
[INFO] [stdout] 558 | |         W: ?Sized + RedisWrite;
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout] help: trait `ToRedisArgs` which provides `to_redis_args` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use trezm_redis::ToRedisArgs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `trezm-redis` (test "test_types") due to 22 previous errors
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | /     pub async fn invoke_async<C, T>(&self, con: &mut C) -> RedisResult<T>
[INFO] [stdout] 155 | |     where
[INFO] [stdout] 156 | |         C: crate::aio::ConnectionLike,
[INFO] [stdout] 157 | |         T: FromRedisValue,
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:176:30
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async(con).await?;
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     load_cmd.query_async::<_, ()>(con).await?;
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/script.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike) -> RedisResult<T> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/script.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 | ...                   .query(con)?;
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 142 |                             .query::<()>(con)?;
[INFO] [stdout]     |                                   ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/aio.rs:521:1
[INFO] [stdout]     |
[INFO] [stdout] 521 | / pin_project! {
[INFO] [stdout] 522 | |     struct PipelineSink<T, I, E> {
[INFO] [stdout] 523 | |         #[pin]
[INFO] [stdout] 524 | |         sink_stream: T,
[INFO] [stdout] ...   |
[INFO] [stdout] 528 | | }
[INFO] [stdout]     | |_^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `$crate::pin_project` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6e124a4205c7b9cc34d06b3c1704226739f452cd7aed9464111011b26cb0bee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e124a4205c7b9cc34d06b3c1704226739f452cd7aed9464111011b26cb0bee6", kill_on_drop: false }`
[INFO] [stdout] 6e124a4205c7b9cc34d06b3c1704226739f452cd7aed9464111011b26cb0bee6
