[INFO] cloning repository https://github.com/rock117/simple-redis [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rock117/simple-redis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fsimple-redis", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fsimple-redis'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d7b6820a67cee054780ad1ff0115c3e94912e8d0 [INFO] testing rock117/simple-redis against master#595316b4006932405a63862d8fe65f71a6356293 for pr-128254 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fsimple-redis" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/rock117/simple-redis on toolchain 595316b4006932405a63862d8fe65f71a6356293 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+595316b4006932405a63862d8fe65f71a6356293" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/rock117/simple-redis [INFO] finished tweaking git repo https://github.com/rock117/simple-redis [INFO] tweaked toml for git repo https://github.com/rock117/simple-redis written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/rock117/simple-redis 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" "+595316b4006932405a63862d8fe65f71a6356293" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded anon_enum v1.1.0 [INFO] [stderr] Downloaded nonempty-collections v0.2.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+595316b4006932405a63862d8fe65f71a6356293" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 777eefa3adbf6e63447cb387d54307b266194d1ca72fac94a40c090c57a32398 [INFO] running `Command { std: "docker" "start" "-a" "777eefa3adbf6e63447cb387d54307b266194d1ca72fac94a40c090c57a32398", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "777eefa3adbf6e63447cb387d54307b266194d1ca72fac94a40c090c57a32398", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "777eefa3adbf6e63447cb387d54307b266194d1ca72fac94a40c090c57a32398", kill_on_drop: false }` [INFO] [stdout] 777eefa3adbf6e63447cb387d54307b266194d1ca72fac94a40c090c57a32398 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+595316b4006932405a63862d8fe65f71a6356293" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2507bcc53dea17e9a36143b7e87f9c7a4c2f4940b631e262487fe6642cd8c103 [INFO] running `Command { std: "docker" "start" "-a" "2507bcc53dea17e9a36143b7e87f9c7a4c2f4940b631e262487fe6642cd8c103", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling memchr v2.7.2 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling bytes v1.6.0 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling either v1.12.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling nonempty-collections v0.2.5 [INFO] [stderr] Compiling anon_enum v1.1.0 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling dashmap v5.5.3 [INFO] [stderr] Compiling num-bigint v0.4.5 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling num v0.4.3 [INFO] [stderr] Compiling darling_core v0.20.9 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling tokio v1.38.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling darling_macro v0.20.9 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling v0.20.9 [INFO] [stderr] Compiling derive_builder_core v0.20.0 [INFO] [stderr] Compiling tracing-appender v0.2.3 [INFO] [stderr] Compiling derive_builder_macro v0.20.0 [INFO] [stderr] Compiling derive_builder v0.20.0 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling tokio-util v0.7.11 [INFO] [stderr] Compiling tokio-stream v0.1.15 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling simple-redis v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/command/get.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/command/ping.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Enum2` and `Enum5` [INFO] [stdout] --> src/command/set.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use anon_enum::{Enum2, Enum5}; [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Either` [INFO] [stdout] --> src/command/set.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use itertools::Either; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/datatype/sets.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_errors.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_errors.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_strings.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_strings.rs:6:34 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bytes` [INFO] [stdout] --> src/resp/nulls.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SimpleStrings` [INFO] [stdout] --> src/resp/verbatim_strings.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_clrf, Serializer, SimpleStrings}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/resp/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/storage/file.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/storage/mem.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::command` [INFO] [stdout] --> src/stream_handler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::command; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::context::AppContext` [INFO] [stdout] --> src/stream_handler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::context::AppContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SimpleStrings`, `nulls`, and `simple_errors` [INFO] [stdout] --> src/stream_handler.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::resp::{nulls, simple_errors, SimpleStrings}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/stream_handler.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::Interest` [INFO] [stdout] --> src/stream_handler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::io::Interest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LinesCodec` [INFO] [stdout] --> src/stream_handler.rs:11:33 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/stream_handler.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `another` [INFO] [stdout] --> src/datatype/lists.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 16 | pub async fn blmove(&mut self, another: &mut Lists) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/stream_handler.rs:15:28 [INFO] [stdout] | [INFO] [stdout] 15 | pub async fn handle_stream(mut stream: TcpStream) -> Result<(), RedisError> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NonEmptyIterator` [INFO] [stdout] --> src/command/del.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use nonempty_collections::{NESet, NonEmptyIterator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/datatype/sorted_sets.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> src/resp/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::AsBytes` [INFO] [stdout] --> src/resp/simple_strings.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use nom::AsBytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/get.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | context: &dyn Context, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `get` [INFO] [stdout] --> src/command/get.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let get = Get::try_from(bstr); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_get` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/ping.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(&self, context: &dyn Context) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/command/set.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let data = storage.get(&self.key).clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> src/command/command_executor.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/command_executor.rs:7:40 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/resp/bulk_strings.rs:36:19 [INFO] [stdout] | [INFO] [stdout] 36 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/resp/bulk_strings.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | fn from_str(s: &str) -> Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/storage/mem.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn get(&self, key: &str) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:28:22 [INFO] [stdout] | [INFO] [stdout] 28 | fn remove(&self, key: &str) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Item` is more private than the item `SortedSets::zadd` [INFO] [stdout] --> src/datatype/sorted_sets.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn zadd(&mut self, item: Item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `SortedSets::zadd` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Item` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `SimpleErrors` is more private than the item `Resp::SimpleErrors::0` [INFO] [stdout] --> src/resp/mod.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | SimpleErrors(SimpleErrors), [INFO] [stdout] | ^^^^^^^^^^^^ field `Resp::SimpleErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `SimpleErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/simple_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct SimpleErrors(pub String); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BulkErrors` is more private than the item `Resp::BulkErrors::0` [INFO] [stdout] --> src/resp/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | BulkErrors(BulkErrors), [INFO] [stdout] | ^^^^^^^^^^ field `Resp::BulkErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `BulkErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/bulk_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct BulkErrors(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Arrays` is more private than the item `Resp::Arrays::0` [INFO] [stdout] --> src/resp/mod.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | Arrays(Arrays), [INFO] [stdout] | ^^^^^^ field `Resp::Arrays::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Arrays` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/arrays.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct Arrays(pub Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Nulls` is more private than the item `Resp::Nulls::0` [INFO] [stdout] --> src/resp/mod.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | Nulls(Nulls), [INFO] [stdout] | ^^^^^ field `Resp::Nulls::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Nulls` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/nulls.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Nulls; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Command` is never used [INFO] [stdout] --> src/command/mod.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait Command: Send { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Append` is never constructed [INFO] [stdout] --> src/command/append.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Del` is never constructed [INFO] [stdout] --> src/command/del.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Del { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Exist` is never constructed [INFO] [stdout] --> src/command/exist.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Exist<'a>(&'a str); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expire` is never constructed [INFO] [stdout] --> src/command/expire.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Expire { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Opts` is never used [INFO] [stdout] --> src/command/expire.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Opts { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test` is never used [INFO] [stdout] --> src/command/get.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn test() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hello` is never constructed [INFO] [stdout] --> src/command/hello.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct Hello(Option); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `version`, `user`, and `client_name` are never read [INFO] [stdout] --> src/command/hello.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Opts { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 6 | version: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 7 | user: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | client_name: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `passwd` are never read [INFO] [stdout] --> src/command/hello.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 27 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | passwd: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ping` is never constructed [INFO] [stdout] --> src/command/ping.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Ping(Option); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NX` and `XX` are never constructed [INFO] [stdout] --> src/command/set.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | enum SetKeyOpt { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 29 | NX, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | XX, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `SetKeyOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EX`, `PX`, `EXAT`, `PXAT`, and `KEEPTTL` are never constructed [INFO] [stdout] --> src/command/set.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | enum ExpiredOpt { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | EX(usize), [INFO] [stdout] | ^^ [INFO] [stdout] 36 | PX(usize), [INFO] [stdout] | ^^ [INFO] [stdout] 37 | EXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 38 | PXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | KEEPTTL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExpiredOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandExecutor` is never constructed [INFO] [stdout] --> src/command/command_executor.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct CommandExecutor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `execute` is never used [INFO] [stdout] --> src/command/command_executor.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl CommandExecutor { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `storage` is never used [INFO] [stdout] --> src/context.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Context { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] 4 | type Storage: Storage; [INFO] [stdout] 5 | fn storage(&self) -> Self::Storage; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RedisCollection` is never used [INFO] [stdout] --> src/datatype/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum RedisCollection { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisCollection` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hashes` is never constructed [INFO] [stdout] --> src/datatype/hashes.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Hashes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Hashes` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lists` is never constructed [INFO] [stdout] --> src/datatype/lists.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Lists(Vec>); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Incr` is never used [INFO] [stdout] --> src/datatype/op.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | pub(super) trait Incr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Append` is never used [INFO] [stdout] --> src/datatype/op.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | pub(super) trait Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sets` is never constructed [INFO] [stdout] --> src/datatype/sets.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Sets(HashSet); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SortedSets` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct SortedSets(BTreeSet); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Item` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Float` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct Float(f64); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_f64`, `new_f32`, and `new_usize` are never used [INFO] [stdout] --> src/datatype/sorted_sets.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl Float { [INFO] [stdout] | ---------- associated functions in this implementation [INFO] [stdout] 52 | pub fn new_f64(f: f64) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn new_f32(f: f32) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn new_usize(f: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Strings` is never constructed [INFO] [stdout] --> src/datatype/strings.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Strings(Data); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Data` is never used [INFO] [stdout] --> src/datatype/strings.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Data { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DeSerializer` is never used [INFO] [stdout] --> src/resp/mod.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | trait DeSerializer where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BigNumbers` is never constructed [INFO] [stdout] --> src/resp/big_numbers.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct BigNumbers(BigInt); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Integers` is never constructed [INFO] [stdout] --> src/resp/integers.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Integers(i64); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Maps` is never constructed [INFO] [stdout] --> src/resp/maps.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Maps(HashMap); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pushes` is never constructed [INFO] [stdout] --> src/resp/pushes.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Pushes(Vec); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VerbatimStrings` is never constructed [INFO] [stdout] --> src/resp/verbatim_strings.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct VerbatimStrings { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_incomplete` is never used [INFO] [stdout] --> src/resp/frame/mod.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn is_incomplete(result: IResult) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `put`, `get`, and `remove` are never used [INFO] [stdout] --> src/storage/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Storage { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 7 | fn put(&self, key: String, value: RedisCollection); [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | fn get(&self, key: &str) -> Option; [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | [INFO] [stdout] 10 | fn remove(&self, key: &str); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStorage` is never constructed [INFO] [stdout] --> src/storage/file.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct FileStorage; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `strings`, `lists`, `sets`, `sorted_sets`, and `hashes` are never read [INFO] [stdout] --> src/storage/mem.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MemStorage { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | strings: HashMap>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | lists: HashMap>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | sets: HashMap>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | sorted_sets: HashMap>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | hashes: HashMap>>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_fatal_error` is never used [INFO] [stdout] --> src/stream_handler.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn is_fatal_error(error: &RedisError) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 85 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpStream` [INFO] [stdout] --> src/main.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::net::{TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_stream::StreamExt` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio_stream::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Framed` and `LinesCodec` [INFO] [stdout] --> src/main.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::SinkExt` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::SinkExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.08s [INFO] running `Command { std: "docker" "inspect" "2507bcc53dea17e9a36143b7e87f9c7a4c2f4940b631e262487fe6642cd8c103", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2507bcc53dea17e9a36143b7e87f9c7a4c2f4940b631e262487fe6642cd8c103", kill_on_drop: false }` [INFO] [stdout] 2507bcc53dea17e9a36143b7e87f9c7a4c2f4940b631e262487fe6642cd8c103 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+595316b4006932405a63862d8fe65f71a6356293" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fde4647aa4207fbe812c826af8decfa94ed0d9b230bef20e039c6fba1df58d47 [INFO] running `Command { std: "docker" "start" "-a" "fde4647aa4207fbe812c826af8decfa94ed0d9b230bef20e039c6fba1df58d47", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/command/get.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/command/ping.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Enum2` and `Enum5` [INFO] [stdout] --> src/command/set.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use anon_enum::{Enum2, Enum5}; [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Either` [INFO] [stdout] --> src/command/set.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use itertools::Either; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/datatype/sets.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_errors.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_errors.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_strings.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_strings.rs:6:34 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bytes` [INFO] [stdout] --> src/resp/nulls.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SimpleStrings` [INFO] [stdout] --> src/resp/verbatim_strings.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_clrf, Serializer, SimpleStrings}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/resp/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/storage/file.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/storage/mem.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::command` [INFO] [stdout] --> src/stream_handler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::command; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::context::AppContext` [INFO] [stdout] --> src/stream_handler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::context::AppContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SimpleStrings`, `nulls`, and `simple_errors` [INFO] [stdout] --> src/stream_handler.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::resp::{nulls, simple_errors, SimpleStrings}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/stream_handler.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::Interest` [INFO] [stdout] --> src/stream_handler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::io::Interest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LinesCodec` [INFO] [stdout] --> src/stream_handler.rs:11:33 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/stream_handler.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `another` [INFO] [stdout] --> src/datatype/lists.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 16 | pub async fn blmove(&mut self, another: &mut Lists) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/stream_handler.rs:15:28 [INFO] [stdout] | [INFO] [stdout] 15 | pub async fn handle_stream(mut stream: TcpStream) -> Result<(), RedisError> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NonEmptyIterator` [INFO] [stdout] --> src/command/del.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use nonempty_collections::{NESet, NonEmptyIterator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/datatype/sorted_sets.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> src/resp/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::AsBytes` [INFO] [stdout] --> src/resp/simple_strings.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use nom::AsBytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/get.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | context: &dyn Context, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `get` [INFO] [stdout] --> src/command/get.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let get = Get::try_from(bstr); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_get` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/ping.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(&self, context: &dyn Context) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/command/set.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let data = storage.get(&self.key).clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> src/command/command_executor.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/command_executor.rs:7:40 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/resp/bulk_strings.rs:36:19 [INFO] [stdout] | [INFO] [stdout] 36 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/resp/bulk_strings.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | fn from_str(s: &str) -> Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/storage/mem.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn get(&self, key: &str) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:28:22 [INFO] [stdout] | [INFO] [stdout] 28 | fn remove(&self, key: &str) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Item` is more private than the item `SortedSets::zadd` [INFO] [stdout] --> src/datatype/sorted_sets.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn zadd(&mut self, item: Item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `SortedSets::zadd` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Item` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `SimpleErrors` is more private than the item `Resp::SimpleErrors::0` [INFO] [stdout] --> src/resp/mod.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | SimpleErrors(SimpleErrors), [INFO] [stdout] | ^^^^^^^^^^^^ field `Resp::SimpleErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `SimpleErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/simple_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct SimpleErrors(pub String); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BulkErrors` is more private than the item `Resp::BulkErrors::0` [INFO] [stdout] --> src/resp/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | BulkErrors(BulkErrors), [INFO] [stdout] | ^^^^^^^^^^ field `Resp::BulkErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `BulkErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/bulk_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct BulkErrors(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Arrays` is more private than the item `Resp::Arrays::0` [INFO] [stdout] --> src/resp/mod.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | Arrays(Arrays), [INFO] [stdout] | ^^^^^^ field `Resp::Arrays::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Arrays` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/arrays.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct Arrays(pub Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Nulls` is more private than the item `Resp::Nulls::0` [INFO] [stdout] --> src/resp/mod.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | Nulls(Nulls), [INFO] [stdout] | ^^^^^ field `Resp::Nulls::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Nulls` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/nulls.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Nulls; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Command` is never used [INFO] [stdout] --> src/command/mod.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait Command: Send { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Append` is never constructed [INFO] [stdout] --> src/command/append.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Del` is never constructed [INFO] [stdout] --> src/command/del.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Del { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Exist` is never constructed [INFO] [stdout] --> src/command/exist.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Exist<'a>(&'a str); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expire` is never constructed [INFO] [stdout] --> src/command/expire.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Expire { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Opts` is never used [INFO] [stdout] --> src/command/expire.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Opts { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test` is never used [INFO] [stdout] --> src/command/get.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn test() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hello` is never constructed [INFO] [stdout] --> src/command/hello.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct Hello(Option); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `version`, `user`, and `client_name` are never read [INFO] [stdout] --> src/command/hello.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Opts { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 6 | version: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 7 | user: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | client_name: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `passwd` are never read [INFO] [stdout] --> src/command/hello.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 27 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | passwd: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ping` is never constructed [INFO] [stdout] --> src/command/ping.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Ping(Option); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NX` and `XX` are never constructed [INFO] [stdout] --> src/command/set.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | enum SetKeyOpt { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 29 | NX, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | XX, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `SetKeyOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EX`, `PX`, `EXAT`, `PXAT`, and `KEEPTTL` are never constructed [INFO] [stdout] --> src/command/set.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | enum ExpiredOpt { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | EX(usize), [INFO] [stdout] | ^^ [INFO] [stdout] 36 | PX(usize), [INFO] [stdout] | ^^ [INFO] [stdout] 37 | EXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 38 | PXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | KEEPTTL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExpiredOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandExecutor` is never constructed [INFO] [stdout] --> src/command/command_executor.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct CommandExecutor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `execute` is never used [INFO] [stdout] --> src/command/command_executor.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl CommandExecutor { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `storage` is never used [INFO] [stdout] --> src/context.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Context { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] 4 | type Storage: Storage; [INFO] [stdout] 5 | fn storage(&self) -> Self::Storage; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RedisCollection` is never used [INFO] [stdout] --> src/datatype/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum RedisCollection { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisCollection` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hashes` is never constructed [INFO] [stdout] --> src/datatype/hashes.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Hashes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Hashes` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lists` is never constructed [INFO] [stdout] --> src/datatype/lists.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Lists(Vec>); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Incr` is never used [INFO] [stdout] --> src/datatype/op.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | pub(super) trait Incr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Append` is never used [INFO] [stdout] --> src/datatype/op.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | pub(super) trait Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sets` is never constructed [INFO] [stdout] --> src/datatype/sets.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Sets(HashSet); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SortedSets` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct SortedSets(BTreeSet); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Item` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Float` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct Float(f64); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_f64`, `new_f32`, and `new_usize` are never used [INFO] [stdout] --> src/datatype/sorted_sets.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl Float { [INFO] [stdout] | ---------- associated functions in this implementation [INFO] [stdout] 52 | pub fn new_f64(f: f64) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn new_f32(f: f32) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn new_usize(f: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Strings` is never constructed [INFO] [stdout] --> src/datatype/strings.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Strings(Data); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Data` is never used [INFO] [stdout] --> src/datatype/strings.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Data { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DeSerializer` is never used [INFO] [stdout] --> src/resp/mod.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | trait DeSerializer where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BigNumbers` is never constructed [INFO] [stdout] --> src/resp/big_numbers.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct BigNumbers(BigInt); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Integers` is never constructed [INFO] [stdout] --> src/resp/integers.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Integers(i64); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Maps` is never constructed [INFO] [stdout] --> src/resp/maps.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Maps(HashMap); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pushes` is never constructed [INFO] [stdout] --> src/resp/pushes.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Pushes(Vec); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VerbatimStrings` is never constructed [INFO] [stdout] --> src/resp/verbatim_strings.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct VerbatimStrings { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_incomplete` is never used [INFO] [stdout] --> src/resp/frame/mod.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn is_incomplete(result: IResult) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `put`, `get`, and `remove` are never used [INFO] [stdout] --> src/storage/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Storage { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 7 | fn put(&self, key: String, value: RedisCollection); [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | fn get(&self, key: &str) -> Option; [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | [INFO] [stdout] 10 | fn remove(&self, key: &str); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStorage` is never constructed [INFO] [stdout] --> src/storage/file.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct FileStorage; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling simple-redis v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: fields `strings`, `lists`, `sets`, `sorted_sets`, and `hashes` are never read [INFO] [stdout] --> src/storage/mem.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MemStorage { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | strings: HashMap>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | lists: HashMap>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | sets: HashMap>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | sorted_sets: HashMap>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | hashes: HashMap>>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_fatal_error` is never used [INFO] [stdout] --> src/stream_handler.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn is_fatal_error(error: &RedisError) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 85 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpStream` [INFO] [stdout] --> src/main.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::net::{TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_stream::StreamExt` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio_stream::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Framed` and `LinesCodec` [INFO] [stdout] --> src/main.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/command/get.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/command/ping.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Enum2` and `Enum5` [INFO] [stdout] --> src/command/set.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use anon_enum::{Enum2, Enum5}; [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Either` [INFO] [stdout] --> src/command/set.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use itertools::Either; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/datatype/sets.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_errors.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_errors.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> src/resp/bulk_strings.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{BufMut, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `put_clrf` [INFO] [stdout] --> src/resp/bulk_strings.rs:6:34 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bytes` [INFO] [stdout] --> src/resp/nulls.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SimpleStrings` [INFO] [stdout] --> src/resp/verbatim_strings.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::resp::{put_clrf, Serializer, SimpleStrings}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/resp/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/storage/file.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/storage/mem.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::command` [INFO] [stdout] --> src/stream_handler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::command; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::context::AppContext` [INFO] [stdout] --> src/stream_handler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::context::AppContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SimpleStrings`, `nulls`, and `simple_errors` [INFO] [stdout] --> src/stream_handler.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::resp::{nulls, simple_errors, SimpleStrings}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/stream_handler.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::Interest` [INFO] [stdout] --> src/stream_handler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::io::Interest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LinesCodec` [INFO] [stdout] --> src/stream_handler.rs:11:33 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/stream_handler.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::SinkExt` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::SinkExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `another` [INFO] [stdout] --> src/datatype/lists.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 16 | pub async fn blmove(&mut self, another: &mut Lists) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/stream_handler.rs:15:28 [INFO] [stdout] | [INFO] [stdout] 15 | pub async fn handle_stream(mut stream: TcpStream) -> Result<(), RedisError> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NonEmptyIterator` [INFO] [stdout] --> src/command/del.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use nonempty_collections::{NESet, NonEmptyIterator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::Storage` [INFO] [stdout] --> src/datatype/sorted_sets.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> src/resp/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::AsBytes` [INFO] [stdout] --> src/resp/simple_strings.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use nom::AsBytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/get.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | context: &dyn Context, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `get` [INFO] [stdout] --> src/command/get.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let get = Get::try_from(bstr); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_get` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/ping.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(&self, context: &dyn Context) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/command/set.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let data = storage.get(&self.key).clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> src/command/command_executor.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/command/command_executor.rs:7:40 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/resp/bulk_strings.rs:36:19 [INFO] [stdout] | [INFO] [stdout] 36 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/resp/bulk_strings.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | fn from_str(s: &str) -> Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/storage/mem.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | fn get(&self, key: &str) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/storage/mem.rs:28:22 [INFO] [stdout] | [INFO] [stdout] 28 | fn remove(&self, key: &str) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Item` is more private than the item `SortedSets::zadd` [INFO] [stdout] --> src/datatype/sorted_sets.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn zadd(&mut self, item: Item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `SortedSets::zadd` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Item` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `SimpleErrors` is more private than the item `Resp::SimpleErrors::0` [INFO] [stdout] --> src/resp/mod.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | SimpleErrors(SimpleErrors), [INFO] [stdout] | ^^^^^^^^^^^^ field `Resp::SimpleErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `SimpleErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/simple_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct SimpleErrors(pub String); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BulkErrors` is more private than the item `Resp::BulkErrors::0` [INFO] [stdout] --> src/resp/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | BulkErrors(BulkErrors), [INFO] [stdout] | ^^^^^^^^^^ field `Resp::BulkErrors::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `BulkErrors` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/bulk_errors.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct BulkErrors(Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Arrays` is more private than the item `Resp::Arrays::0` [INFO] [stdout] --> src/resp/mod.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | Arrays(Arrays), [INFO] [stdout] | ^^^^^^ field `Resp::Arrays::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Arrays` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/arrays.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct Arrays(pub Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `nulls::Nulls` is more private than the item `Resp::Nulls::0` [INFO] [stdout] --> src/resp/mod.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | Nulls(Nulls), [INFO] [stdout] | ^^^^^ field `Resp::Nulls::0` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `nulls::Nulls` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/resp/nulls.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Nulls; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Command` is never used [INFO] [stdout] --> src/command/mod.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait Command: Send { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Append` is never constructed [INFO] [stdout] --> src/command/append.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Del` is never constructed [INFO] [stdout] --> src/command/del.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Del { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Exist` is never constructed [INFO] [stdout] --> src/command/exist.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Exist<'a>(&'a str); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expire` is never constructed [INFO] [stdout] --> src/command/expire.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) struct Expire { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Opts` is never used [INFO] [stdout] --> src/command/expire.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum Opts { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test` is never used [INFO] [stdout] --> src/command/get.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn test() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hello` is never constructed [INFO] [stdout] --> src/command/hello.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct Hello(Option); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `version`, `user`, and `client_name` are never read [INFO] [stdout] --> src/command/hello.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Opts { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 6 | version: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 7 | user: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | client_name: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `passwd` are never read [INFO] [stdout] --> src/command/hello.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 27 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | passwd: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ping` is never constructed [INFO] [stdout] --> src/command/ping.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Ping(Option); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `XX` is never constructed [INFO] [stdout] --> src/command/set.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 28 | enum SetKeyOpt { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 29 | NX, [INFO] [stdout] 30 | XX, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `SetKeyOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PX`, `EXAT`, `PXAT`, and `KEEPTTL` are never constructed [INFO] [stdout] --> src/command/set.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 34 | enum ExpiredOpt { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | EX(usize), [INFO] [stdout] 36 | PX(usize), [INFO] [stdout] | ^^ [INFO] [stdout] 37 | EXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 38 | PXAT(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | KEEPTTL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExpiredOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandExecutor` is never constructed [INFO] [stdout] --> src/command/command_executor.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct CommandExecutor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `execute` is never used [INFO] [stdout] --> src/command/command_executor.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl CommandExecutor { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `storage` is never used [INFO] [stdout] --> src/context.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Context { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] 4 | type Storage: Storage; [INFO] [stdout] 5 | fn storage(&self) -> Self::Storage; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RedisCollection` is never used [INFO] [stdout] --> src/datatype/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum RedisCollection { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisCollection` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hashes` is never constructed [INFO] [stdout] --> src/datatype/hashes.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Hashes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Hashes` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lists` is never constructed [INFO] [stdout] --> src/datatype/lists.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Lists(Vec>); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Incr` is never used [INFO] [stdout] --> src/datatype/op.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | pub(super) trait Incr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Append` is never used [INFO] [stdout] --> src/datatype/op.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | pub(super) trait Append { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sets` is never constructed [INFO] [stdout] --> src/datatype/sets.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Sets(HashSet); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SortedSets` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct SortedSets(BTreeSet); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Item` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Item { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Float` is never constructed [INFO] [stdout] --> src/datatype/sorted_sets.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct Float(f64); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_f64`, `new_f32`, and `new_usize` are never used [INFO] [stdout] --> src/datatype/sorted_sets.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl Float { [INFO] [stdout] | ---------- associated functions in this implementation [INFO] [stdout] 52 | pub fn new_f64(f: f64) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn new_f32(f: f32) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn new_usize(f: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DeSerializer` is never used [INFO] [stdout] --> src/resp/mod.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | trait DeSerializer where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BigNumbers` is never constructed [INFO] [stdout] --> src/resp/big_numbers.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct BigNumbers(BigInt); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Integers` is never constructed [INFO] [stdout] --> src/resp/integers.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Integers(i64); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Maps` is never constructed [INFO] [stdout] --> src/resp/maps.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) struct Maps(HashMap); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pushes` is never constructed [INFO] [stdout] --> src/resp/pushes.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Pushes(Vec); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `put`, `get`, and `remove` are never used [INFO] [stdout] --> src/storage/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Storage { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 7 | fn put(&self, key: String, value: RedisCollection); [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | fn get(&self, key: &str) -> Option; [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | [INFO] [stdout] 10 | fn remove(&self, key: &str); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStorage` is never constructed [INFO] [stdout] --> src/storage/file.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) struct FileStorage; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `strings`, `lists`, `sets`, `sorted_sets`, and `hashes` are never read [INFO] [stdout] --> src/storage/mem.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MemStorage { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | strings: HashMap>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | lists: HashMap>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | sets: HashMap>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | sorted_sets: HashMap>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | hashes: HashMap>>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_fatal_error` is never used [INFO] [stdout] --> src/stream_handler.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn is_fatal_error(error: &RedisError) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 81 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s [INFO] running `Command { std: "docker" "inspect" "fde4647aa4207fbe812c826af8decfa94ed0d9b230bef20e039c6fba1df58d47", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fde4647aa4207fbe812c826af8decfa94ed0d9b230bef20e039c6fba1df58d47", kill_on_drop: false }` [INFO] [stdout] fde4647aa4207fbe812c826af8decfa94ed0d9b230bef20e039c6fba1df58d47 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+595316b4006932405a63862d8fe65f71a6356293" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2a560a65f3183ec6f501d6f23c92027a0a32d350c8b07f7a7d1d52928fb97c2f [INFO] running `Command { std: "docker" "start" "-a" "2a560a65f3183ec6f501d6f23c92027a0a32d350c8b07f7a7d1d52928fb97c2f", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::storage::Storage` [INFO] [stderr] --> src/command/get.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::storage::Storage; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::pin::Pin` [INFO] [stderr] --> src/command/ping.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::pin::Pin; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Enum2` and `Enum5` [INFO] [stderr] --> src/command/set.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | use anon_enum::{Enum2, Enum5}; [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Either` [INFO] [stderr] --> src/command/set.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use itertools::Either; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/datatype/sets.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `put_clrf` [INFO] [stderr] --> src/resp/bulk_errors.rs:2:34 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufMut` [INFO] [stderr] --> src/resp/bulk_errors.rs:3:13 [INFO] [stderr] | [INFO] [stderr] 3 | use bytes::{BufMut, BytesMut}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufMut` [INFO] [stderr] --> src/resp/bulk_strings.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | use bytes::{BufMut, BytesMut}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `put_clrf` [INFO] [stderr] --> src/resp/bulk_strings.rs:6:34 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::resp::{put_bulk_data, put_clrf, Serializer}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Bytes` [INFO] [stderr] --> src/resp/nulls.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SimpleStrings` [INFO] [stderr] --> src/resp/verbatim_strings.rs:2:41 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::resp::{put_clrf, Serializer, SimpleStrings}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/resp/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::storage::Storage` [INFO] [stderr] --> src/storage/file.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::storage::Storage; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `dashmap::DashMap` [INFO] [stderr] --> src/storage/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use dashmap::DashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::command` [INFO] [stderr] --> src/stream_handler.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::command; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::context::AppContext` [INFO] [stderr] --> src/stream_handler.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::context::AppContext; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SimpleStrings`, `nulls`, and `simple_errors` [INFO] [stderr] --> src/stream_handler.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::resp::{nulls, simple_errors, SimpleStrings}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/stream_handler.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::io::Interest` [INFO] [stderr] --> src/stream_handler.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use tokio::io::Interest; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `LinesCodec` [INFO] [stderr] --> src/stream_handler.rs:11:33 [INFO] [stderr] | [INFO] [stderr] 11 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `info` [INFO] [stderr] --> src/stream_handler.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | use tracing::{info, warn}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `another` [INFO] [stderr] --> src/datatype/lists.rs:16:36 [INFO] [stderr] | [INFO] [stderr] 16 | pub async fn blmove(&mut self, another: &mut Lists) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/stream_handler.rs:15:28 [INFO] [stderr] | [INFO] [stderr] 15 | pub async fn handle_stream(mut stream: TcpStream) -> Result<(), RedisError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `NonEmptyIterator` [INFO] [stderr] --> src/command/del.rs:1:35 [INFO] [stderr] | [INFO] [stderr] 1 | use nonempty_collections::{NESet, NonEmptyIterator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::storage::Storage` [INFO] [stderr] --> src/datatype/sorted_sets.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::storage::Storage; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::Serialize` [INFO] [stderr] --> src/resp/mod.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use serde::Serialize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::AsBytes` [INFO] [stderr] --> src/resp/simple_strings.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use nom::AsBytes; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/command/get.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | context: &dyn Context, [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `get` [INFO] [stderr] --> src/command/get.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | let get = Get::try_from(bstr); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_get` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/command/ping.rs:19:23 [INFO] [stderr] | [INFO] [stderr] 19 | fn execute(&self, context: &dyn Context) -> Result { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/command/set.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | let data = storage.get(&self.key).clone(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cmd` [INFO] [stderr] --> src/command/command_executor.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/command/command_executor.rs:7:40 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/resp/bulk_strings.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/resp/bulk_strings.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | fn from_str(s: &str) -> Result { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/storage/mem.rs:20:19 [INFO] [stderr] | [INFO] [stderr] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/storage/mem.rs:20:32 [INFO] [stderr] | [INFO] [stderr] 20 | fn put(&self, key: String, value: RedisCollection) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/storage/mem.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | fn get(&self, key: &str) -> Option { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/storage/mem.rs:28:22 [INFO] [stderr] | [INFO] [stderr] 28 | fn remove(&self, key: &str) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: type `Item` is more private than the item `SortedSets::zadd` [INFO] [stderr] --> src/datatype/sorted_sets.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn zadd(&mut self, item: Item) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `SortedSets::zadd` is reachable at visibility `pub(crate)` [INFO] [stderr] | [INFO] [stderr] note: but type `Item` is only usable at visibility `pub(self)` [INFO] [stderr] --> src/datatype/sorted_sets.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | struct Item { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = note: `#[warn(private_interfaces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `SimpleErrors` is more private than the item `Resp::SimpleErrors::0` [INFO] [stderr] --> src/resp/mod.rs:30:18 [INFO] [stderr] | [INFO] [stderr] 30 | SimpleErrors(SimpleErrors), [INFO] [stderr] | ^^^^^^^^^^^^ field `Resp::SimpleErrors::0` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `SimpleErrors` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/resp/simple_errors.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct SimpleErrors(pub String); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `BulkErrors` is more private than the item `Resp::BulkErrors::0` [INFO] [stderr] --> src/resp/mod.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | BulkErrors(BulkErrors), [INFO] [stderr] | ^^^^^^^^^^ field `Resp::BulkErrors::0` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `BulkErrors` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/resp/bulk_errors.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct BulkErrors(Vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `Arrays` is more private than the item `Resp::Arrays::0` [INFO] [stderr] --> src/resp/mod.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 33 | Arrays(Arrays), [INFO] [stderr] | ^^^^^^ field `Resp::Arrays::0` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `Arrays` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/resp/arrays.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub(crate) struct Arrays(pub Vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `Nulls` is more private than the item `Resp::Nulls::0` [INFO] [stderr] --> src/resp/mod.rs:34:11 [INFO] [stderr] | [INFO] [stderr] 34 | Nulls(Nulls), [INFO] [stderr] | ^^^^^ field `Resp::Nulls::0` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `Nulls` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/resp/nulls.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct Nulls; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `Command` is never used [INFO] [stderr] --> src/command/mod.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 16 | pub trait Command: Send { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Append` is never constructed [INFO] [stderr] --> src/command/append.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | pub(crate) struct Append { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Del` is never constructed [INFO] [stderr] --> src/command/del.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) struct Del { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Exist` is never constructed [INFO] [stderr] --> src/command/exist.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | pub(crate) struct Exist<'a>(&'a str); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Expire` is never constructed [INFO] [stderr] --> src/command/expire.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | pub(crate) struct Expire { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Opts` is never used [INFO] [stderr] --> src/command/expire.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | enum Opts { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test` is never used [INFO] [stderr] --> src/command/get.rs:48:4 [INFO] [stderr] | [INFO] [stderr] 48 | fn test() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Hello` is never constructed [INFO] [stderr] --> src/command/hello.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | pub(crate) struct Hello(Option); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `version`, `user`, and `client_name` are never read [INFO] [stderr] --> src/command/hello.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Opts { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 6 | version: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 7 | user: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 8 | client_name: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name` and `passwd` are never read [INFO] [stderr] --> src/command/hello.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 26 | struct User { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 27 | name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 28 | passwd: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Ping` is never constructed [INFO] [stderr] --> src/command/ping.rs:8:19 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct Ping(Option); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `NX` and `XX` are never constructed [INFO] [stderr] --> src/command/set.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 28 | enum SetKeyOpt { [INFO] [stderr] | --------- variants in this enum [INFO] [stderr] 29 | NX, [INFO] [stderr] | ^^ [INFO] [stderr] 30 | XX, [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: `SetKeyOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `EX`, `PX`, `EXAT`, `PXAT`, and `KEEPTTL` are never constructed [INFO] [stderr] --> src/command/set.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 34 | enum ExpiredOpt { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] 35 | EX(usize), [INFO] [stderr] | ^^ [INFO] [stderr] 36 | PX(usize), [INFO] [stderr] | ^^ [INFO] [stderr] 37 | EXAT(usize), [INFO] [stderr] | ^^^^ [INFO] [stderr] 38 | PXAT(usize), [INFO] [stderr] | ^^^^ [INFO] [stderr] 39 | KEEPTTL, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExpiredOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `CommandExecutor` is never constructed [INFO] [stderr] --> src/command/command_executor.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | pub(crate) struct CommandExecutor; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `execute` is never used [INFO] [stderr] --> src/command/command_executor.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 6 | impl CommandExecutor { [INFO] [stderr] | -------------------- associated function in this implementation [INFO] [stderr] 7 | pub fn execute(cmd: &impl Command, context: &impl Context) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `storage` is never used [INFO] [stderr] --> src/context.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub trait Context { [INFO] [stderr] | ------- method in this trait [INFO] [stderr] 4 | type Storage: Storage; [INFO] [stderr] 5 | fn storage(&self) -> Self::Storage; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `RedisCollection` is never used [INFO] [stderr] --> src/datatype/mod.rs:15:10 [INFO] [stderr] | [INFO] [stderr] 15 | pub enum RedisCollection { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RedisCollection` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `Hashes` is never constructed [INFO] [stderr] --> src/datatype/hashes.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Hashes; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Hashes` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `Lists` is never constructed [INFO] [stderr] --> src/datatype/lists.rs:2:12 [INFO] [stderr] | [INFO] [stderr] 2 | pub struct Lists(Vec>); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `Incr` is never used [INFO] [stderr] --> src/datatype/op.rs:1:18 [INFO] [stderr] | [INFO] [stderr] 1 | pub(super) trait Incr { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `Append` is never used [INFO] [stderr] --> src/datatype/op.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | pub(super) trait Append { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Sets` is never constructed [INFO] [stderr] --> src/datatype/sets.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Sets(HashSet); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SortedSets` is never constructed [INFO] [stderr] --> src/datatype/sorted_sets.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct SortedSets(BTreeSet); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Item` is never constructed [INFO] [stderr] --> src/datatype/sorted_sets.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | struct Item { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Float` is never constructed [INFO] [stderr] --> src/datatype/sorted_sets.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | struct Float(f64); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `new_f64`, `new_f32`, and `new_usize` are never used [INFO] [stderr] --> src/datatype/sorted_sets.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 51 | impl Float { [INFO] [stderr] | ---------- associated functions in this implementation [INFO] [stderr] 52 | pub fn new_f64(f: f64) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | pub fn new_f32(f: f32) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 58 | pub fn new_usize(f: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Strings` is never constructed [INFO] [stderr] --> src/datatype/strings.rs:4:12 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Strings(Data); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Data` is never used [INFO] [stderr] --> src/datatype/strings.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | enum Data { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `DeSerializer` is never used [INFO] [stderr] --> src/resp/mod.rs:41:7 [INFO] [stderr] | [INFO] [stderr] 41 | trait DeSerializer where Self: Sized { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `BigNumbers` is never constructed [INFO] [stderr] --> src/resp/big_numbers.rs:9:19 [INFO] [stderr] | [INFO] [stderr] 9 | pub(crate) struct BigNumbers(BigInt); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Integers` is never constructed [INFO] [stderr] --> src/resp/integers.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) struct Integers(i64); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Maps` is never constructed [INFO] [stderr] --> src/resp/maps.rs:8:19 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct Maps(HashMap); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Pushes` is never constructed [INFO] [stderr] --> src/resp/pushes.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) struct Pushes(Vec); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `VerbatimStrings` is never constructed [INFO] [stderr] --> src/resp/verbatim_strings.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) struct VerbatimStrings { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_incomplete` is never used [INFO] [stderr] --> src/resp/frame/mod.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn is_incomplete(result: IResult) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `put`, `get`, and `remove` are never used [INFO] [stderr] --> src/storage/mod.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub trait Storage { [INFO] [stderr] | ------- methods in this trait [INFO] [stderr] 7 | fn put(&self, key: String, value: RedisCollection); [INFO] [stderr] | ^^^ [INFO] [stderr] 8 | fn get(&self, key: &str) -> Option; [INFO] [stderr] | ^^^ [INFO] [stderr] 9 | [INFO] [stderr] 10 | fn remove(&self, key: &str); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `FileStorage` is never constructed [INFO] [stderr] --> src/storage/file.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | pub(crate) struct FileStorage; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `strings`, `lists`, `sets`, `sorted_sets`, and `hashes` are never read [INFO] [stderr] --> src/storage/mem.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct MemStorage { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 8 | strings: HashMap>>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 9 | lists: HashMap>>, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 10 | sets: HashMap>>, [INFO] [stderr] | ^^^^ [INFO] [stderr] 11 | sorted_sets: HashMap>>, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 12 | hashes: HashMap>>, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_fatal_error` is never used [INFO] [stderr] --> src/stream_handler.rs:45:4 [INFO] [stderr] | [INFO] [stderr] 45 | fn is_fatal_error(error: &RedisError) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `nulls::Nulls` is more private than the item `Resp::Nulls::0` [INFO] [stderr] --> src/resp/mod.rs:34:11 [INFO] [stderr] | [INFO] [stderr] 34 | Nulls(Nulls), [INFO] [stderr] | ^^^^^ field `Resp::Nulls::0` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `nulls::Nulls` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/resp/nulls.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) struct Nulls; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `XX` is never constructed [INFO] [stderr] --> src/command/set.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 28 | enum SetKeyOpt { [INFO] [stderr] | --------- variant in this enum [INFO] [stderr] 29 | NX, [INFO] [stderr] 30 | XX, [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: `SetKeyOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `PX`, `EXAT`, `PXAT`, and `KEEPTTL` are never constructed [INFO] [stderr] --> src/command/set.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 34 | enum ExpiredOpt { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] 35 | EX(usize), [INFO] [stderr] 36 | PX(usize), [INFO] [stderr] | ^^ [INFO] [stderr] 37 | EXAT(usize), [INFO] [stderr] | ^^^^ [INFO] [stderr] 38 | PXAT(usize), [INFO] [stderr] | ^^^^ [INFO] [stderr] 39 | KEEPTTL, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExpiredOpt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `simple-redis` (lib) generated 85 warnings (run `cargo fix --lib -p simple-redis` to apply 22 suggestions) [INFO] [stderr] warning: `simple-redis` (lib test) generated 81 warnings (78 duplicates) [INFO] [stderr] warning: unused import: `TcpStream` [INFO] [stderr] --> src/main.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | use tokio::net::{TcpListener, TcpStream}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio_stream::StreamExt` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use tokio_stream::StreamExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Framed` and `LinesCodec` [INFO] [stderr] --> src/main.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use tokio_util::codec::{Framed, LinesCodec}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `futures::SinkExt` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::SinkExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `simple-redis` (bin "simple-redis" test) generated 4 warnings (run `cargo fix --bin "simple-redis" --tests` to apply 3 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/simple_redis-014e51177e74251e) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test datatype::strings::tests::test_append ... ok [INFO] [stdout] test command::set::tests::test_to_string ... ok [INFO] [stdout] test datatype::strings::tests::test_incr ... ok [INFO] [stdout] test resp::frame::decode::resp_codec_test::test_decode_in_complete ... ok [INFO] [stdout] test resp::frame::decode::resp_codec_test::test_decode_ok ... ok [INFO] [stdout] test resp::frame::decode::resp_codec_test::test_decode_ok_more_than_a_full_frame ... ok [INFO] [stdout] test resp::frame::decode::tests::test_decode_bulks_strings ... ok [INFO] [stdout] test resp::frame::decode::tests::test_decode_arrays ... ok [INFO] [stdout] test resp::frame::decode::tests::test_decode_nulls ... ok [INFO] [stdout] test resp::frame::decode::tests::test_decode_simple_errors ... ok [INFO] [stdout] test resp::frame::decode::tests::test_decode_simple_strings ... ok [INFO] [stdout] test resp::nulls::tests::test_serialize ... ok [INFO] [stdout] test resp::simple_strings::tests::test_serialize ... ok [INFO] [stdout] test resp::verbatim_strings::tests::test_serialize ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/simple_redis-ef22244843f92c27) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests simple_redis [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2a560a65f3183ec6f501d6f23c92027a0a32d350c8b07f7a7d1d52928fb97c2f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a560a65f3183ec6f501d6f23c92027a0a32d350c8b07f7a7d1d52928fb97c2f", kill_on_drop: false }` [INFO] [stdout] 2a560a65f3183ec6f501d6f23c92027a0a32d350c8b07f7a7d1d52928fb97c2f [INFO] testing rock117/simple-redis against try#5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b for pr-128254 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fsimple-redis" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/rock117/simple-redis on toolchain 5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/rock117/simple-redis [INFO] finished tweaking git repo https://github.com/rock117/simple-redis [INFO] tweaked toml for git repo https://github.com/rock117/simple-redis written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/rock117/simple-redis 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" "+5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aaf5431fda6fd4c9f7ee587426ff1c2737f7e605bdde8f3275ee26da15921fe5 [INFO] running `Command { std: "docker" "start" "-a" "aaf5431fda6fd4c9f7ee587426ff1c2737f7e605bdde8f3275ee26da15921fe5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aaf5431fda6fd4c9f7ee587426ff1c2737f7e605bdde8f3275ee26da15921fe5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aaf5431fda6fd4c9f7ee587426ff1c2737f7e605bdde8f3275ee26da15921fe5", kill_on_drop: false }` [INFO] [stdout] aaf5431fda6fd4c9f7ee587426ff1c2737f7e605bdde8f3275ee26da15921fe5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5b6182061328ba1c1f7968523cb7bf6a1158aa3454a649f4df8f7f5433cc4ee3 [INFO] running `Command { std: "docker" "start" "-a" "5b6182061328ba1c1f7968523cb7bf6a1158aa3454a649f4df8f7f5433cc4ee3", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Compiling memchr v2.7.2 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling either v1.12.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling bytes v1.6.0 [INFO] [stdout] error: failed to write to `/opt/rustwide/target/debug/deps/rmetav0Afpn/lib.rmeta`: No space left on device (os error 28) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `libc` (lib) due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] rustc-LLVM ERROR: IO failure on output stream: No space left on device [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/tmp/rustcfJH5PE" [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetaG6hFkc" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] rustc-LLVM ERROR: IO failure on output stream: No space left on device [INFO] [stderr] error: could not compile `proc-macro2` (lib) [INFO] [stderr] error: could not compile `memchr` (lib) due to 1 previous error [INFO] [stderr] error: could not compile `ryu` (lib) due to 1 previous error [INFO] [stderr] error: could not compile `sharded-slab` (lib) [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetamKQRHR" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `lock_api` (lib) due to 1 previous error [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-Wl,--version-script=/tmp/rustcFWODcf/list" "-Wl,--no-undefined-version" "-m64" "/tmp/rustcFWODcf/symbols.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.5ke02ffupsuajhyxwvpj5itlo.rcgu.rmeta" "/opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.5b1zshlbpsfeyv0iksee6ygip.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-7e248b736ec3690e.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-9506e3738f23e7c7.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-0e87bdc388165b9b.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-28d2ee21ffecbcd0.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-4cd64c3d9fc2560b.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-a1fedeceba4cc892.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-0b8915cbc76cd410.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-fec2ce82fc5b17fa.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-fdb02324b55b2840.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-db981ef273c68b12.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-2c4968ed4cb29e9c.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-661cdd70a5b83118.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9cbb3bfdc8e63ca5.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-a4c5ad4392a26401.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-9409cd7d030362b9.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-80d2f129fb536a6f.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-7586cb84705120bb.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/opt/rustwide/target/debug/deps/librustversion-2dfa89b0f630f027.so" "-Wl,--gc-sections" "-shared" "-Wl,-soname=librustversion-2dfa89b0f630f027.so" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. [INFO] [stdout] Stack dump: [INFO] [stdout] 0. Program arguments: /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/rust-lld -flavor gnu -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDesdFG.res --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -shared -z relro -o /opt/rustwide/target/debug/deps/librustversion-2dfa89b0f630f027.so /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/opt/rustwide/target/debug/deps -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld -L/opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. --version-script=/tmp/rustcFWODcf/list --no-undefined-version /tmp/rustcFWODcf/symbols.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.0.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.1.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.2.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.3.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.4.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.5.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.6.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.7.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.rustversion.e7c79caa7e583755-cgu.8.rcgu.o /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.5ke02ffupsuajhyxwvpj5itlo.rcgu.rmeta /opt/rustwide/target/debug/deps/rustversion-2dfa89b0f630f027.5b1zshlbpsfeyv0iksee6ygip.rcgu.o --as-needed -Bstatic /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-7e248b736ec3690e.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-9506e3738f23e7c7.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-0e87bdc388165b9b.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-28d2ee21ffecbcd0.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-4cd64c3d9fc2560b.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-a1fedeceba4cc892.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-0b8915cbc76cd410.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-fec2ce82fc5b17fa.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-fdb02324b55b2840.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-db981ef273c68b12.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-2c4968ed4cb29e9c.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-661cdd70a5b83118.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9cbb3bfdc8e63ca5.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-a4c5ad4392a26401.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-9409cd7d030362b9.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-80d2f129fb536a6f.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib /opt/rustwide/rustup-home/toolchains/5e89635d7bf1d3033c2eb20378b7b3cbe2dd1a9b/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-7586cb84705120bb.rlib -Bdynamic -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc --eh-frame-hdr -z noexecstack --gc-sections -soname=librustversion-2dfa89b0f630f027.so -z relro -z now /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o [INFO] [stdout] LLVM ERROR: IO failure on output stream: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: error writing dependencies to `/opt/rustwide/target/debug/deps/time-8c1af965624f136c.d`: No space left on device (os error 28) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rustversion` (lib) due to 2 previous errors [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetaK9SJVA" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `time` (lib) due to 1 previous error [INFO] [stderr] error: could not compile `either` (lib) due to 1 previous error [INFO] [stdout] error: error writing dependencies to `/opt/rustwide/target/debug/deps/syn-ca104456142d79fd.d`: No space left on device (os error 28) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `syn` (lib) due to 1 previous error [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetaAXdwRd" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `crossbeam-channel` (lib) due to 1 previous error [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetayoTfSj" [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetaa0nXTY" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `num-traits` (lib) due to 1 previous error [INFO] [stderr] error: could not compile `regex-syntax` (lib) due to 1 previous error [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetauHUwk3" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `bytes` (lib) due to 1 previous error [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetayNQahO" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `hashbrown` (lib) due to 1 previous error [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetaOTFbeB" [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `regex-syntax` (lib) due to 1 previous error [INFO] running `Command { std: "docker" "inspect" "5b6182061328ba1c1f7968523cb7bf6a1158aa3454a649f4df8f7f5433cc4ee3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b6182061328ba1c1f7968523cb7bf6a1158aa3454a649f4df8f7f5433cc4ee3", kill_on_drop: false }` [INFO] [stdout] 5b6182061328ba1c1f7968523cb7bf6a1158aa3454a649f4df8f7f5433cc4ee3