[INFO] fetching crate cal-redis 0.1.80... [INFO] building cal-redis-0.1.80 against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1 [INFO] extracting crate cal-redis 0.1.80 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate cal-redis 0.1.80 [INFO] finished tweaking crates.io crate cal-redis 0.1.80 [INFO] tweaked toml for crates.io crate cal-redis 0.1.80 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cal-redis 0.1.80 on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate cal-redis 0.1.80 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded validator_derive v0.18.2 [INFO] [stderr] Downloaded once_cell v1.21.2 [INFO] [stderr] Downloaded iana-time-zone v0.1.62 [INFO] [stderr] Downloaded validator v0.18.1 [INFO] [stderr] Downloaded netaddr2 v0.7.1 [INFO] [stderr] Downloaded cal-jambonz v0.1.72 [INFO] [stderr] Downloaded ip-in-subnet v0.1.4 [INFO] [stderr] Downloaded generator v0.8.4 [INFO] [stderr] Downloaded redox_syscall v0.5.10 [INFO] [stderr] Downloaded chrono v0.4.40 [INFO] [stderr] Downloaded redis v0.29.5 [INFO] [stderr] Downloaded quick-xml v0.37.3 [INFO] [stderr] Downloaded bson v2.14.0 [INFO] [stderr] Downloaded phonenumber v0.3.7+8.13.52 [INFO] [stderr] Downloaded cal-core v0.2.144 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0fc1a9b3197bc8fd3d03903751154eebae0609cf3c0f08576cbfa346cdcc121d [INFO] running `Command { std: "docker" "start" "-a" "0fc1a9b3197bc8fd3d03903751154eebae0609cf3c0f08576cbfa346cdcc121d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0fc1a9b3197bc8fd3d03903751154eebae0609cf3c0f08576cbfa346cdcc121d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0fc1a9b3197bc8fd3d03903751154eebae0609cf3c0f08576cbfa346cdcc121d", kill_on_drop: false }` [INFO] [stdout] 0fc1a9b3197bc8fd3d03903751154eebae0609cf3c0f08576cbfa346cdcc121d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2e738da1214e9b200850321442f47891d3c01537def7b17337f4ad125e8f3817 [INFO] running `Command { std: "docker" "start" "-a" "2e738da1214e9b200850321442f47891d3c01537def7b17337f4ad125e8f3817", kill_on_drop: false }` [INFO] [stderr] Compiling smallvec v1.14.0 [INFO] [stderr] Compiling icu_locid_transform_data v1.5.1 [INFO] [stderr] Compiling icu_properties_data v1.5.1 [INFO] [stderr] Compiling once_cell v1.21.2 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling icu_normalizer_data v1.5.1 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling rustversion v1.0.20 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling tinyvec v1.9.0 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling openssl-sys v0.9.107 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling tinystr v0.7.6 [INFO] [stderr] Compiling icu_collections v1.5.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling tokio v1.44.2 [INFO] [stderr] Compiling quick-xml v0.37.3 [INFO] [stderr] Compiling icu_locid v1.5.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling bitflags v2.9.0 [INFO] [stderr] Compiling time-macros v0.2.22 [INFO] [stderr] Compiling deranged v0.4.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling uuid v1.16.0 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling iana-time-zone v0.1.62 [INFO] [stderr] Compiling icu_provider v1.5.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling netaddr2 v0.7.1 [INFO] [stderr] Compiling icu_locid_transform v1.5.0 [INFO] [stderr] Compiling oncemutex v0.1.1 [INFO] [stderr] Compiling portable-atomic v1.11.0 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling ip-in-subnet v0.1.4 [INFO] [stderr] Compiling chrono v0.4.40 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling serde_bytes v0.11.17 [INFO] [stderr] Compiling time v0.3.41 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling moka v0.12.10 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling icu_properties v1.5.1 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling validator_derive v0.18.2 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling regex-cache v0.2.1 [INFO] [stderr] Compiling cal-jambonz v0.1.72 [INFO] [stderr] Compiling bson v2.14.0 [INFO] [stderr] Compiling phonenumber v0.3.7+8.13.52 [INFO] [stderr] Compiling icu_normalizer v1.5.0 [INFO] [stderr] Compiling idna_adapter v1.2.0 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling tokio-util v0.7.14 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling combine v4.6.7 [INFO] [stderr] Compiling validator v0.18.1 [INFO] [stderr] Compiling cal-core v0.2.144 [INFO] [stderr] Compiling redis v0.29.5 [INFO] [stderr] Compiling cal-redis v0.1.80 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `deserialize_from_json` [INFO] [stdout] --> src/account.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | deserialize_from_json, get_hash_item, get_items, insert_items, serialize_to_json, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/account.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | use serde::{de::DeserializeOwned, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UserLite` [INFO] [stdout] --> src/local_cache.rs:2:81 [INFO] [stdout] | [INFO] [stdout] 2 | use cal_core::{AccountLite, Asset, FlowState, Hook, Proxy, Region, Trunk, User, UserLite, DDI}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn agent_status_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | status: &AgentStatus, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 21 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 22 | [INFO] [stdout] 23 | // Update indexes [INFO] [stdout] 24 ~ con.hset::<_, _, _, ()>( [INFO] [stdout] 25 | &AgentKeys::by_user(account_id), [INFO] [stdout] ... [INFO] [stdout] 33 | println!("[CallableCache::agent_status_set] Agent is registered, adding to registered set"); [INFO] [stdout] 34 ~ con.sadd::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 35 | .await?; [INFO] [stdout] 36 | } else { [INFO] [stdout] 37 | println!("[CallableCache::agent_status_set] Agent is not registered, removing from registered set"); [INFO] [stdout] 38 ~ con.srem::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 39 | .await?; [INFO] [stdout] ... [INFO] [stdout] 44 | println!("[CallableCache::agent_status_set] Agent is available, adding to available set"); [INFO] [stdout] 45 ~ con.sadd::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] 46 | .await?; [INFO] [stdout] 47 | } else { [INFO] [stdout] 48 | println!("[CallableCache::agent_status_set] Agent is not available, removing from available set"); [INFO] [stdout] 49 ~ con.srem::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub async fn add_connected_agent( [INFO] [stdout] 88 | | &self, [INFO] [stdout] 89 | | account_id: &str, [INFO] [stdout] 90 | | user_id: &str, [INFO] [stdout] 91 | | agent_id: &str, [INFO] [stdout] 92 | | ws_connection_id: &str, [INFO] [stdout] 93 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | con.sadd(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 100 ~ con.sadd::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 101 | [INFO] [stdout] 102 | // Map WebSocket connection to account for routing [INFO] [stdout] 103 ~ con.hset::<_, _, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id, account_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | / pub async fn remove_connected_agent( [INFO] [stdout] 110 | | &self, [INFO] [stdout] 111 | | account_id: &str, [INFO] [stdout] 112 | | user_id: &str, [INFO] [stdout] 113 | | agent_id: &str, [INFO] [stdout] 114 | | ws_connection_id: &str, [INFO] [stdout] 115 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | con.srem(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 121 ~ con.srem::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 122 | [INFO] [stdout] 123 | // Remove WebSocket mapping [INFO] [stdout] 124 ~ con.hdel::<_, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub async fn queue_group_set(&self, queue: &QueueGroup) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 17 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 18 | [INFO] [stdout] 19 | // Track in active queues [INFO] [stdout] 20 ~ con.sadd::<_, _, ()>(&crate::constants::QueueKeys::active(&queue.account_id), &queue.name).await?; [INFO] [stdout] 21 | [INFO] [stdout] ... [INFO] [stdout] 29 | }); [INFO] [stdout] 30 ~ con.hset::<_, _, _, ()>(&meta_key, &queue.name, meta.to_string()).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub async fn queue_group_delete(&self, account_id: &str, queue_name: &str) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 68 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 69 | [INFO] [stdout] 70 | // Remove from active set [INFO] [stdout] 71 ~ con.srem::<_, _, ()>(&crate::constants::QueueKeys::active(account_id), queue_name).await?; [INFO] [stdout] 72 | [INFO] [stdout] 73 | // Remove metadata [INFO] [stdout] 74 | let meta_key = crate::constants::QueueKeys::metadata(account_id); [INFO] [stdout] 75 ~ con.hdel::<_, _, ()>(&meta_key, queue_name).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn session_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | session_data: &SessionData, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | con.set_ex(&key, session_json, ttl).await?; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.set_ex::<_, _, ()>(&key, session_json, ttl).await?; [INFO] [stdout] 30 | [INFO] [stdout] 31 | // Track active sessions [INFO] [stdout] 32 ~ con.sadd::<_, _, ()>(&SessionKeys::active(account_id), &session_data.session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / pub async fn session_delete( [INFO] [stdout] 131 | | &self, [INFO] [stdout] 132 | | account_id: &str, [INFO] [stdout] 133 | | session_id: &str, [INFO] [stdout] 134 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 138 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 139 ~ con.srem::<_, _, ()>(&SessionKeys::active(account_id), session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/websocket.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub async fn publish_account_event( [INFO] [stdout] 47 | | &self, [INFO] [stdout] 48 | | account_id: &str, [INFO] [stdout] 49 | | event: &RedisEvent, [INFO] [stdout] 50 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/websocket.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | con.publish(&channel, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 57 | con.publish::<_, _, ()>(&channel, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/helpers.rs:145:1 [INFO] [stdout] | [INFO] [stdout] 145 | / pub async fn publish_event( [INFO] [stdout] 146 | | con: &mut MultiplexedConnection, [INFO] [stdout] 147 | | event: RedisEvent, [INFO] [stdout] 148 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/helpers.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | con.publish(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 158 | con.publish::<_, _, ()>(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_jambonz_entry(&self, entry: JambonzEntry) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | con.hset(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 28 | con.hset::<_, _, _, ()>(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub async fn insert_jambonz_entries(&self, entries: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_contact(&self, contact: Contact) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | con.hset(&hash_key, &contact.id, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.hset::<_, _, _, ()>(&hash_key, &contact.id, value).await?; [INFO] [stdout] 30 | [INFO] [stdout] ... [INFO] [stdout] 34 | // Map primary phone to contact ID [INFO] [stdout] 35 ~ con.hset::<_, _, _, ()>(&idents_key, &contact.primary, &contact.id).await?; [INFO] [stdout] 36 | [INFO] [stdout] 37 | // Map secondary phone if exists [INFO] [stdout] 38 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 39 ~ con.hset::<_, _, _, ()>(&idents_key, secondary, &contact.id).await?; [INFO] [stdout] 40 | } [INFO] [stdout] ... [INFO] [stdout] 43 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 44 ~ con.hset::<_, _, _, ()>(&idents_key, tertiary, &contact.id).await?; [INFO] [stdout] 45 | } [INFO] [stdout] ... [INFO] [stdout] 48 | if let Some(ref email) = contact.email { [INFO] [stdout] 49 ~ con.hset::<_, _, _, ()>(&idents_key, email, &contact.id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / pub async fn delete_contact( [INFO] [stdout] 198 | | &self, [INFO] [stdout] 199 | | account_id: &str, [INFO] [stdout] 200 | | contact_id: &str, [INFO] [stdout] 201 | | ) -> Result { [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | con.hdel(&idents_key, &contact.primary).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 213 ~ con.hdel::<_, _, ()>(&idents_key, &contact.primary).await?; [INFO] [stdout] 214 | [INFO] [stdout] 215 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 216 ~ con.hdel::<_, _, ()>(&idents_key, secondary).await?; [INFO] [stdout] 217 | } [INFO] [stdout] 218 | [INFO] [stdout] 219 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 220 ~ con.hdel::<_, _, ()>(&idents_key, tertiary).await?; [INFO] [stdout] 221 | } [INFO] [stdout] 222 | [INFO] [stdout] 223 | if let Some(ref email) = contact.email { [INFO] [stdout] 224 ~ con.hdel::<_, _, ()>(&idents_key, email).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub async fn insert_contacts(&self, contacts: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insert_addresses` is never used [INFO] [stdout] --> src/account.rs:407:10 [INFO] [stdout] | [INFO] [stdout] 407 | async fn insert_addresses( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 15s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: cal-redis v0.1.80 (/opt/rustwide/workdir) [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "2e738da1214e9b200850321442f47891d3c01537def7b17337f4ad125e8f3817", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e738da1214e9b200850321442f47891d3c01537def7b17337f4ad125e8f3817", kill_on_drop: false }` [INFO] [stdout] 2e738da1214e9b200850321442f47891d3c01537def7b17337f4ad125e8f3817 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 42a2327310426aea283599234260d1bfc7176d9bfe07cfefe88934ae01cff4f9 [INFO] running `Command { std: "docker" "start" "-a" "42a2327310426aea283599234260d1bfc7176d9bfe07cfefe88934ae01cff4f9", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `deserialize_from_json` [INFO] [stdout] --> src/account.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | deserialize_from_json, get_hash_item, get_items, insert_items, serialize_to_json, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/account.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | use serde::{de::DeserializeOwned, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UserLite` [INFO] [stdout] --> src/local_cache.rs:2:81 [INFO] [stdout] | [INFO] [stdout] 2 | use cal_core::{AccountLite, Asset, FlowState, Hook, Proxy, Region, Trunk, User, UserLite, DDI}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn agent_status_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | status: &AgentStatus, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 21 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 22 | [INFO] [stdout] 23 | // Update indexes [INFO] [stdout] 24 ~ con.hset::<_, _, _, ()>( [INFO] [stdout] 25 | &AgentKeys::by_user(account_id), [INFO] [stdout] ... [INFO] [stdout] 33 | println!("[CallableCache::agent_status_set] Agent is registered, adding to registered set"); [INFO] [stdout] 34 ~ con.sadd::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 35 | .await?; [INFO] [stdout] 36 | } else { [INFO] [stdout] 37 | println!("[CallableCache::agent_status_set] Agent is not registered, removing from registered set"); [INFO] [stdout] 38 ~ con.srem::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 39 | .await?; [INFO] [stdout] ... [INFO] [stdout] 44 | println!("[CallableCache::agent_status_set] Agent is available, adding to available set"); [INFO] [stdout] 45 ~ con.sadd::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] 46 | .await?; [INFO] [stdout] 47 | } else { [INFO] [stdout] 48 | println!("[CallableCache::agent_status_set] Agent is not available, removing from available set"); [INFO] [stdout] 49 ~ con.srem::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub async fn add_connected_agent( [INFO] [stdout] 88 | | &self, [INFO] [stdout] 89 | | account_id: &str, [INFO] [stdout] 90 | | user_id: &str, [INFO] [stdout] 91 | | agent_id: &str, [INFO] [stdout] 92 | | ws_connection_id: &str, [INFO] [stdout] 93 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | con.sadd(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 100 ~ con.sadd::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 101 | [INFO] [stdout] 102 | // Map WebSocket connection to account for routing [INFO] [stdout] 103 ~ con.hset::<_, _, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id, account_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | / pub async fn remove_connected_agent( [INFO] [stdout] 110 | | &self, [INFO] [stdout] 111 | | account_id: &str, [INFO] [stdout] 112 | | user_id: &str, [INFO] [stdout] 113 | | agent_id: &str, [INFO] [stdout] 114 | | ws_connection_id: &str, [INFO] [stdout] 115 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | con.srem(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 121 ~ con.srem::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 122 | [INFO] [stdout] 123 | // Remove WebSocket mapping [INFO] [stdout] 124 ~ con.hdel::<_, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub async fn queue_group_set(&self, queue: &QueueGroup) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 17 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 18 | [INFO] [stdout] 19 | // Track in active queues [INFO] [stdout] 20 ~ con.sadd::<_, _, ()>(&crate::constants::QueueKeys::active(&queue.account_id), &queue.name).await?; [INFO] [stdout] 21 | [INFO] [stdout] ... [INFO] [stdout] 29 | }); [INFO] [stdout] 30 ~ con.hset::<_, _, _, ()>(&meta_key, &queue.name, meta.to_string()).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub async fn queue_group_delete(&self, account_id: &str, queue_name: &str) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 68 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 69 | [INFO] [stdout] 70 | // Remove from active set [INFO] [stdout] 71 ~ con.srem::<_, _, ()>(&crate::constants::QueueKeys::active(account_id), queue_name).await?; [INFO] [stdout] 72 | [INFO] [stdout] 73 | // Remove metadata [INFO] [stdout] 74 | let meta_key = crate::constants::QueueKeys::metadata(account_id); [INFO] [stdout] 75 ~ con.hdel::<_, _, ()>(&meta_key, queue_name).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn session_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | session_data: &SessionData, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | con.set_ex(&key, session_json, ttl).await?; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.set_ex::<_, _, ()>(&key, session_json, ttl).await?; [INFO] [stdout] 30 | [INFO] [stdout] 31 | // Track active sessions [INFO] [stdout] 32 ~ con.sadd::<_, _, ()>(&SessionKeys::active(account_id), &session_data.session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / pub async fn session_delete( [INFO] [stdout] 131 | | &self, [INFO] [stdout] 132 | | account_id: &str, [INFO] [stdout] 133 | | session_id: &str, [INFO] [stdout] 134 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 138 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 139 ~ con.srem::<_, _, ()>(&SessionKeys::active(account_id), session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/websocket.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub async fn publish_account_event( [INFO] [stdout] 47 | | &self, [INFO] [stdout] 48 | | account_id: &str, [INFO] [stdout] 49 | | event: &RedisEvent, [INFO] [stdout] 50 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/websocket.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | con.publish(&channel, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 57 | con.publish::<_, _, ()>(&channel, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/helpers.rs:145:1 [INFO] [stdout] | [INFO] [stdout] 145 | / pub async fn publish_event( [INFO] [stdout] 146 | | con: &mut MultiplexedConnection, [INFO] [stdout] 147 | | event: RedisEvent, [INFO] [stdout] 148 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/helpers.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | con.publish(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 158 | con.publish::<_, _, ()>(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_jambonz_entry(&self, entry: JambonzEntry) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | con.hset(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 28 | con.hset::<_, _, _, ()>(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub async fn insert_jambonz_entries(&self, entries: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_contact(&self, contact: Contact) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | con.hset(&hash_key, &contact.id, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.hset::<_, _, _, ()>(&hash_key, &contact.id, value).await?; [INFO] [stdout] 30 | [INFO] [stdout] ... [INFO] [stdout] 34 | // Map primary phone to contact ID [INFO] [stdout] 35 ~ con.hset::<_, _, _, ()>(&idents_key, &contact.primary, &contact.id).await?; [INFO] [stdout] 36 | [INFO] [stdout] 37 | // Map secondary phone if exists [INFO] [stdout] 38 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 39 ~ con.hset::<_, _, _, ()>(&idents_key, secondary, &contact.id).await?; [INFO] [stdout] 40 | } [INFO] [stdout] ... [INFO] [stdout] 43 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 44 ~ con.hset::<_, _, _, ()>(&idents_key, tertiary, &contact.id).await?; [INFO] [stdout] 45 | } [INFO] [stdout] ... [INFO] [stdout] 48 | if let Some(ref email) = contact.email { [INFO] [stdout] 49 ~ con.hset::<_, _, _, ()>(&idents_key, email, &contact.id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / pub async fn delete_contact( [INFO] [stdout] 198 | | &self, [INFO] [stdout] 199 | | account_id: &str, [INFO] [stdout] 200 | | contact_id: &str, [INFO] [stdout] 201 | | ) -> Result { [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | con.hdel(&idents_key, &contact.primary).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 213 ~ con.hdel::<_, _, ()>(&idents_key, &contact.primary).await?; [INFO] [stdout] 214 | [INFO] [stdout] 215 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 216 ~ con.hdel::<_, _, ()>(&idents_key, secondary).await?; [INFO] [stdout] 217 | } [INFO] [stdout] 218 | [INFO] [stdout] 219 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 220 ~ con.hdel::<_, _, ()>(&idents_key, tertiary).await?; [INFO] [stdout] 221 | } [INFO] [stdout] 222 | [INFO] [stdout] 223 | if let Some(ref email) = contact.email { [INFO] [stdout] 224 ~ con.hdel::<_, _, ()>(&idents_key, email).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub async fn insert_contacts(&self, contacts: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insert_addresses` is never used [INFO] [stdout] --> src/account.rs:407:10 [INFO] [stdout] | [INFO] [stdout] 407 | async fn insert_addresses( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling cal-redis v0.1.80 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `deserialize_from_json` [INFO] [stdout] --> src/account.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | deserialize_from_json, get_hash_item, get_items, insert_items, serialize_to_json, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/account.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | use serde::{de::DeserializeOwned, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UserLite` [INFO] [stdout] --> src/local_cache.rs:2:81 [INFO] [stdout] | [INFO] [stdout] 2 | use cal_core::{AccountLite, Asset, FlowState, Hook, Proxy, Region, Trunk, User, UserLite, DDI}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn agent_status_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | status: &AgentStatus, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 21 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 22 | [INFO] [stdout] 23 | // Update indexes [INFO] [stdout] 24 ~ con.hset::<_, _, _, ()>( [INFO] [stdout] 25 | &AgentKeys::by_user(account_id), [INFO] [stdout] ... [INFO] [stdout] 33 | println!("[CallableCache::agent_status_set] Agent is registered, adding to registered set"); [INFO] [stdout] 34 ~ con.sadd::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 35 | .await?; [INFO] [stdout] 36 | } else { [INFO] [stdout] 37 | println!("[CallableCache::agent_status_set] Agent is not registered, removing from registered set"); [INFO] [stdout] 38 ~ con.srem::<_, _, ()>(&AgentKeys::registered(account_id), &status.user_id) [INFO] [stdout] 39 | .await?; [INFO] [stdout] ... [INFO] [stdout] 44 | println!("[CallableCache::agent_status_set] Agent is available, adding to available set"); [INFO] [stdout] 45 ~ con.sadd::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] 46 | .await?; [INFO] [stdout] 47 | } else { [INFO] [stdout] 48 | println!("[CallableCache::agent_status_set] Agent is not available, removing from available set"); [INFO] [stdout] 49 ~ con.srem::<_, _, ()>(&AgentKeys::available(account_id), &status.user_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub async fn add_connected_agent( [INFO] [stdout] 88 | | &self, [INFO] [stdout] 89 | | account_id: &str, [INFO] [stdout] 90 | | user_id: &str, [INFO] [stdout] 91 | | agent_id: &str, [INFO] [stdout] 92 | | ws_connection_id: &str, [INFO] [stdout] 93 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | con.sadd(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 100 ~ con.sadd::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 101 | [INFO] [stdout] 102 | // Map WebSocket connection to account for routing [INFO] [stdout] 103 ~ con.hset::<_, _, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id, account_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/agent.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | / pub async fn remove_connected_agent( [INFO] [stdout] 110 | | &self, [INFO] [stdout] 111 | | account_id: &str, [INFO] [stdout] 112 | | user_id: &str, [INFO] [stdout] 113 | | agent_id: &str, [INFO] [stdout] 114 | | ws_connection_id: &str, [INFO] [stdout] 115 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/agent.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | con.srem(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 121 ~ con.srem::<_, _, ()>(&AgentKeys::connected(account_id), &member).await?; [INFO] [stdout] 122 | [INFO] [stdout] 123 | // Remove WebSocket mapping [INFO] [stdout] 124 ~ con.hdel::<_, _, ()>(WS_CONNECTIONS_KEY, ws_connection_id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub async fn queue_group_set(&self, queue: &QueueGroup) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | con.set(&key, json).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 17 ~ con.set::<_, _, ()>(&key, json).await?; [INFO] [stdout] 18 | [INFO] [stdout] 19 | // Track in active queues [INFO] [stdout] 20 ~ con.sadd::<_, _, ()>(&crate::constants::QueueKeys::active(&queue.account_id), &queue.name).await?; [INFO] [stdout] 21 | [INFO] [stdout] ... [INFO] [stdout] 29 | }); [INFO] [stdout] 30 ~ con.hset::<_, _, _, ()>(&meta_key, &queue.name, meta.to_string()).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/queue.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub async fn queue_group_delete(&self, account_id: &str, queue_name: &str) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/queue.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 68 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 69 | [INFO] [stdout] 70 | // Remove from active set [INFO] [stdout] 71 ~ con.srem::<_, _, ()>(&crate::constants::QueueKeys::active(account_id), queue_name).await?; [INFO] [stdout] 72 | [INFO] [stdout] 73 | // Remove metadata [INFO] [stdout] 74 | let meta_key = crate::constants::QueueKeys::metadata(account_id); [INFO] [stdout] 75 ~ con.hdel::<_, _, ()>(&meta_key, queue_name).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub async fn session_set( [INFO] [stdout] 11 | | &self, [INFO] [stdout] 12 | | account_id: &str, [INFO] [stdout] 13 | | session_data: &SessionData, [INFO] [stdout] 14 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | con.set_ex(&key, session_json, ttl).await?; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.set_ex::<_, _, ()>(&key, session_json, ttl).await?; [INFO] [stdout] 30 | [INFO] [stdout] 31 | // Track active sessions [INFO] [stdout] 32 ~ con.sadd::<_, _, ()>(&SessionKeys::active(account_id), &session_data.session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/session.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / pub async fn session_delete( [INFO] [stdout] 131 | | &self, [INFO] [stdout] 132 | | account_id: &str, [INFO] [stdout] 133 | | session_id: &str, [INFO] [stdout] 134 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/session.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | con.del(&key).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 138 ~ con.del::<_, ()>(&key).await?; [INFO] [stdout] 139 ~ con.srem::<_, _, ()>(&SessionKeys::active(account_id), session_id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/websocket.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub async fn publish_account_event( [INFO] [stdout] 47 | | &self, [INFO] [stdout] 48 | | account_id: &str, [INFO] [stdout] 49 | | event: &RedisEvent, [INFO] [stdout] 50 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/websocket.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | con.publish(&channel, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 57 | con.publish::<_, _, ()>(&channel, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/helpers.rs:145:1 [INFO] [stdout] | [INFO] [stdout] 145 | / pub async fn publish_event( [INFO] [stdout] 146 | | con: &mut MultiplexedConnection, [INFO] [stdout] 147 | | event: RedisEvent, [INFO] [stdout] 148 | | ) -> Result<(), RedisError> { [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/helpers.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | con.publish(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 158 | con.publish::<_, _, ()>(GLOBAL_EVENTS_CHANNEL, event_json).await?; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_jambonz_entry(&self, entry: JambonzEntry) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | con.hset(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 28 | con.hset::<_, _, _, ()>(JAMBONZ_KEY, &entry.sip_realm, value).await?; [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/jambonz.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub async fn insert_jambonz_entries(&self, entries: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/jambonz.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 151 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub async fn insert_contact(&self, contact: Contact) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | con.hset(&hash_key, &contact.id, value).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 29 ~ con.hset::<_, _, _, ()>(&hash_key, &contact.id, value).await?; [INFO] [stdout] 30 | [INFO] [stdout] ... [INFO] [stdout] 34 | // Map primary phone to contact ID [INFO] [stdout] 35 ~ con.hset::<_, _, _, ()>(&idents_key, &contact.primary, &contact.id).await?; [INFO] [stdout] 36 | [INFO] [stdout] 37 | // Map secondary phone if exists [INFO] [stdout] 38 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 39 ~ con.hset::<_, _, _, ()>(&idents_key, secondary, &contact.id).await?; [INFO] [stdout] 40 | } [INFO] [stdout] ... [INFO] [stdout] 43 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 44 ~ con.hset::<_, _, _, ()>(&idents_key, tertiary, &contact.id).await?; [INFO] [stdout] 45 | } [INFO] [stdout] ... [INFO] [stdout] 48 | if let Some(ref email) = contact.email { [INFO] [stdout] 49 ~ con.hset::<_, _, _, ()>(&idents_key, email, &contact.id).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | / pub async fn delete_contact( [INFO] [stdout] 198 | | &self, [INFO] [stdout] 199 | | account_id: &str, [INFO] [stdout] 200 | | contact_id: &str, [INFO] [stdout] 201 | | ) -> Result { [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | con.hdel(&idents_key, &contact.primary).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 213 ~ con.hdel::<_, _, ()>(&idents_key, &contact.primary).await?; [INFO] [stdout] 214 | [INFO] [stdout] 215 | if let Some(ref secondary) = contact.secondary { [INFO] [stdout] 216 ~ con.hdel::<_, _, ()>(&idents_key, secondary).await?; [INFO] [stdout] 217 | } [INFO] [stdout] 218 | [INFO] [stdout] 219 | if let Some(ref tertiary) = contact.tertiary { [INFO] [stdout] 220 ~ con.hdel::<_, _, ()>(&idents_key, tertiary).await?; [INFO] [stdout] 221 | } [INFO] [stdout] 222 | [INFO] [stdout] 223 | if let Some(ref email) = contact.email { [INFO] [stdout] 224 ~ con.hdel::<_, _, ()>(&idents_key, email).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/contact.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub async fn insert_contacts(&self, contacts: Vec) -> Result<(), RedisError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/contact.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async(&mut con).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 298 | pipe.query_async::<()>(&mut con).await?; [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insert_addresses` is never used [INFO] [stdout] --> src/account.rs:407:10 [INFO] [stdout] | [INFO] [stdout] 407 | async fn insert_addresses( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 12.69s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: cal-redis v0.1.80 (/opt/rustwide/workdir) [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "42a2327310426aea283599234260d1bfc7176d9bfe07cfefe88934ae01cff4f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "42a2327310426aea283599234260d1bfc7176d9bfe07cfefe88934ae01cff4f9", kill_on_drop: false }` [INFO] [stdout] 42a2327310426aea283599234260d1bfc7176d9bfe07cfefe88934ae01cff4f9