[INFO] cloning repository https://github.com/NT3Games/shit_bot [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NT3Games/shit_bot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNT3Games%2Fshit_bot", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNT3Games%2Fshit_bot'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 28f69ab5a25afc97f12c49424aad3f597b24fe56 [INFO] checking NT3Games/shit_bot/28f69ab5a25afc97f12c49424aad3f597b24fe56 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNT3Games%2Fshit_bot" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/NT3Games/shit_bot on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/NT3Games/shit_bot [INFO] finished tweaking git repo https://github.com/NT3Games/shit_bot [INFO] tweaked toml for git repo https://github.com/NT3Games/shit_bot written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/NT3Games/shit_bot 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" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 560438d264af395ae67e213d6cd29effad4c33d5dfbad654ba866e9aedcd3af1 [INFO] running `Command { std: "docker" "start" "-a" "560438d264af395ae67e213d6cd29effad4c33d5dfbad654ba866e9aedcd3af1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "560438d264af395ae67e213d6cd29effad4c33d5dfbad654ba866e9aedcd3af1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "560438d264af395ae67e213d6cd29effad4c33d5dfbad654ba866e9aedcd3af1", kill_on_drop: false }` [INFO] [stdout] 560438d264af395ae67e213d6cd29effad4c33d5dfbad654ba866e9aedcd3af1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5595ec28a92dfe13bf917c906477b4a50d03826b1b9d35204ab758717c53e75a [INFO] running `Command { std: "docker" "start" "-a" "5595ec28a92dfe13bf917c906477b4a50d03826b1b9d35204ab758717c53e75a", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cc v1.0.88 [INFO] [stderr] Compiling syn v2.0.52 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Compiling mime_guess v2.0.4 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling erasable v1.2.1 [INFO] [stderr] Compiling thiserror v1.0.57 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling either v1.10.0 [INFO] [stderr] Compiling async-trait v0.1.77 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking chrono v0.4.34 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking takecell v0.1.1 [INFO] [stderr] Compiling anyhow v1.0.80 [INFO] [stderr] Checking take_mut v0.2.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking never v0.1.0 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking unsafe-libyaml v0.2.10 [INFO] [stderr] Checking htmlescape v0.3.1 [INFO] [stderr] Checking dyn-clone v1.0.17 [INFO] [stderr] Checking rc-box v1.2.0 [INFO] [stderr] Checking pretty_env_logger v0.4.0 [INFO] [stderr] Checking crossbeam-queue v0.3.11 [INFO] [stderr] Compiling openssl-sys v0.9.101 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling pin-project-internal v1.1.4 [INFO] [stderr] Compiling thiserror-impl v1.0.57 [INFO] [stderr] Compiling darling_core v0.13.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling aquamarine v0.1.12 [INFO] [stderr] Compiling teloxide-macros v0.7.1 [INFO] [stderr] Checking pin-project v1.1.4 [INFO] [stderr] Compiling darling_macro v0.13.4 [INFO] [stderr] Compiling darling v0.13.4 [INFO] [stderr] Compiling serde_with_macros v1.5.2 [INFO] [stderr] Checking serde v1.0.197 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking dptree v0.3.0 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tokio-stream v0.1.14 [INFO] [stderr] Checking h2 v0.3.24 [INFO] [stderr] Checking combine v4.6.6 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_json v1.0.114 [INFO] [stderr] Checking serde_regex v1.1.0 [INFO] [stderr] Checking serde_yaml v0.9.32 [INFO] [stderr] Checking hyper v0.14.28 [INFO] [stderr] Checking redis v0.21.7 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.24 [INFO] [stderr] Checking teloxide-core v0.9.1 [INFO] [stderr] Checking teloxide v0.12.2 [INFO] [stderr] Checking shit_bot v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `shit_bot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/admin.rs [INFO] [stderr] * src/admin/auth_database.rs [INFO] [stderr] * src/admin/handler.rs [INFO] [stderr] * src/admin/join_handler.rs [INFO] [stderr] * src/admin/link_handler.rs [INFO] [stderr] * src/main.rs [INFO] [stderr] * src/utils.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin/handler.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | (($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin/handler.rs:47:6 [INFO] [stderr] | [INFO] [stderr] 47 | ($msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:222:10 [INFO] [stderr] | [INFO] [stderr] 222 | ($typ:expr_2021, $msg:literal) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:225:10 [INFO] [stderr] | [INFO] [stderr] 225 | ($typ:expr_2021, ($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:225:29 [INFO] [stderr] | [INFO] [stderr] 225 | ($typ:expr_2021, ($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:228:10 [INFO] [stderr] | [INFO] [stderr] 228 | ($typ:expr_2021, $msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:228:26 [INFO] [stderr] | [INFO] [stderr] 228 | ($typ:expr_2021, $msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin/handler.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | (($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 41 | (($($msg:expr_2021),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:413:1 [INFO] [stderr] | [INFO] [stderr] 413 | / async fn replace_send( [INFO] [stderr] 414 | | bot: Bot, [INFO] [stderr] 415 | | message: teloxide::requests::JsonRequest, [INFO] [stderr] 416 | | ) -> Result<()> { [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | async fn forward_shit(bot: Bot, message: Message) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:393:13 [INFO] [stderr] | [INFO] [stderr] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/utils.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | pub async fn send_and_delete_join_result(bot: Bot, chat_id: ChatId, message: String) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/utils.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bot` [INFO] [stderr] --> src/admin/link_handler.rs:143:29 [INFO] [stderr] | [INFO] [stderr] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/admin/auth_database.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub async fn add_authed(user_id: u64) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/admin/auth_database.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `handle` [INFO] [stderr] --> src/admin/join_handler.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `handle` [INFO] [stderr] --> src/admin/link_handler.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:41:7 [INFO] [stderr] | [INFO] [stderr] 41 | async fn main() -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | con.set(LAST_SENT_KEY, msg.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors; 8 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin/handler.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | ($msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 47 | ($msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/join_handler.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | add_wating_handle, auth_database, get_data_by_msg, handler::*, user_finish, QuestionData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/link_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | add_wating_handle, auth_database, get_data_by_msg, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:222:15 [INFO] [stdout] | [INFO] [stdout] 222 | ($typ:expr, $msg:literal) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 222 | ($typ:expr_2021, $msg:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:225:15 [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr_2021, ($($msg:expr),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:225:29 [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr_2021),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:228:15 [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr_2021, $msg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:228:26 [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:413:1 [INFO] [stdout] | [INFO] [stdout] 413 | / async fn replace_send( [INFO] [stdout] 414 | | bot: Bot, [INFO] [stdout] 415 | | message: teloxide::requests::JsonRequest, [INFO] [stdout] 416 | | ) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:386:1 [INFO] [stdout] | [INFO] [stdout] 386 | async fn forward_shit(bot: Bot, message: Message) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/utils.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub async fn send_and_delete_join_result(bot: Bot, chat_id: ChatId, message: String) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/utils.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> src/admin/link_handler.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/admin/auth_database.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub async fn add_authed(user_id: u64) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/admin/auth_database.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/join_handler.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/link_handler.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | async fn main() -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | con.set(LAST_SENT_KEY, msg.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:71:36 [INFO] [stdout] | [INFO] [stdout] 71 | ... if let Err(err) = res { [INFO] [stdout] | ^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:78:33 [INFO] [stdout] | [INFO] [stdout] 78 | ... } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match res { Err(err) => { [INFO] [stdout] 72 | bot.send_message( [INFO] [stdout] ... [INFO] [stdout] 77 | return Err(err); [INFO] [stdout] 78 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | if let Some(entities) = msg.entities() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:100:25 [INFO] [stdout] | [INFO] [stdout] 100 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 93 ~ match msg.entities() { Some(entities) => { [INFO] [stdout] 94 | if !entities.iter().any(|e| { [INFO] [stdout] ... [INFO] [stdout] 99 | } [INFO] [stdout] 100 ~ } _ => { [INFO] [stdout] 101 | return false; [INFO] [stdout] 102 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:104:42 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = if let Ok(con) = con { con } else { return false }; [INFO] [stdout] | ^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:104:66 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = if let Ok(con) = con { con } else { return false }; [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = match con { Ok(con) => { con } _ => { return false }}; [INFO] [stdout] | ~~~~~ ++++++++++++ ~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | ... if let Err(err) = res { [INFO] [stdout] | ^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 137 ~ match res { Err(err) => { [INFO] [stdout] 138 | bot.send_message( [INFO] [stdout] ... [INFO] [stdout] 143 | return Err(err); [INFO] [stdout] 144 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:165:28 [INFO] [stdout] | [INFO] [stdout] 165 | if let Some(text) = msg.text() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:168:25 [INFO] [stdout] | [INFO] [stdout] 168 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match msg.text() { Some(text) => { [INFO] [stdout] 166 | let text = text.trim().replace(['\r', '\n'], ""); [INFO] [stdout] 167 | config.forward_pattern.is_match(&text) [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | false [INFO] [stdout] 170 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:260:16 [INFO] [stdout] | [INFO] [stdout] 260 | if let Err(RequestError::Api(teloxide::ApiError::UserNotFound)) = chat_member { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 260 ~ match chat_member { Err(RequestError::Api(teloxide::ApiError::UserNotFound)) => { [INFO] [stdout] 261 | let request = bot [INFO] [stdout] ... [INFO] [stdout] 268 | return Ok(()); [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | chat_member?; [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(reply) = message.reply_to_message() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 273 ~ match message.reply_to_message() { Some(reply) => { [INFO] [stdout] 274 | forward_shit(bot.clone(), reply.to_owned()).await?; [INFO] [stdout] 275 | bot.delete_message(message.chat.id, message.id).await?; [INFO] [stdout] 276 ~ } _ => { [INFO] [stdout] 277 | let request = bot [INFO] [stdout] ... [INFO] [stdout] 280 | replace_send(bot, request).await?; [INFO] [stdout] 281 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:310:16 [INFO] [stdout] | [INFO] [stdout] 310 | if let Some(reply) = message.reply_to_message() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 310 ~ match message.reply_to_message() { Some(reply) => { [INFO] [stdout] 311 | let (res, name) = if let Some(sender) = reply.sender_chat() { [INFO] [stdout] ... [INFO] [stdout] 357 | } [INFO] [stdout] 358 ~ } _ => { [INFO] [stdout] 359 | bot.send_message(message.chat.id, "没有选择消息") [INFO] [stdout] 360 | .reply_to_message_id(message.id) [INFO] [stdout] 361 | .await?; [INFO] [stdout] 362 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if let Some(handles) = self.handles.get_mut(&question_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 99 ~ match self.handles.get_mut(&question_id) { Some(handles) => { [INFO] [stdout] 100 | handles.push(handle); [INFO] [stdout] 101 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(mut data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 158 ~ match get_data_by_msg(&msg_id.0).await { Some(mut data) => { [INFO] [stdout] 159 | let result = callback_handle(bot.clone(), &callback, data.deref_mut()).await?; [INFO] [stdout] ... [INFO] [stdout] 171 | (result, data.handler, data.user.id) [INFO] [stdout] 172 ~ } _ => { [INFO] [stdout] 173 | bot.answer_callback_query(callback.id).await?; [INFO] [stdout] 174 | return Ok(()); [INFO] [stdout] 175 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:208:11 [INFO] [stdout] | [INFO] [stdout] 208 | while let Some((chat, msg)) = TO_DELETE_MESSAGE.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^-----------------^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:210:5 [INFO] [stdout] | [INFO] [stdout] 210 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:302:12 [INFO] [stdout] | [INFO] [stdout] 302 | if let Some(mut data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 302 ~ match get_data_by_msg(&msg_id.0).await { Some(mut data) => { [INFO] [stdout] 303 | data.left_minutes -= 1; [INFO] [stdout] ... [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } _ => { [INFO] [stdout] 314 | break; [INFO] [stdout] 315 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:321:11 [INFO] [stdout] | [INFO] [stdout] 321 | while let Some((chat, msg)) = TO_DELETE_MESSAGE.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^-----------------^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:35:23 [INFO] [stdout] | [INFO] [stdout] 35 | let mut user = if let Some(data) = super::get_data_by_msg(&msg_id).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 35 ~ let mut user = match super::get_data_by_msg(&msg_id).await { Some(data) => { [INFO] [stdout] 36 | data [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | return Ok(()); [INFO] [stdout] 39 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:184:16 [INFO] [stdout] | [INFO] [stdout] 184 | if let Some(data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 184 ~ match get_data_by_msg(&msg_id.0).await { Some(data) => { [INFO] [stdout] 185 | (data.cas, data.tried_times, rank_user(&data.user)) [INFO] [stdout] 186 ~ } _ => { [INFO] [stdout] 187 | return res!(); [INFO] [stdout] 188 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/link_handler.rs:95:16 [INFO] [stdout] | [INFO] [stdout] 95 | if let Some(data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/link_handler.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 95 ~ match get_data_by_msg(&msg_id.0).await { Some(data) => { [INFO] [stdout] 96 | data.tried_times [INFO] [stdout] 97 ~ } _ => { [INFO] [stdout] 98 | return res!(); [INFO] [stdout] 99 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `shit_bot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/admin.rs [INFO] [stderr] * src/admin/auth_database.rs [INFO] [stderr] * src/admin/handler.rs [INFO] [stderr] * src/admin/join_handler.rs [INFO] [stderr] * src/admin/link_handler.rs [INFO] [stderr] * src/main.rs [INFO] [stderr] * src/utils.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin/handler.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | (($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin/handler.rs:47:6 [INFO] [stderr] | [INFO] [stderr] 47 | ($msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:222:10 [INFO] [stderr] | [INFO] [stderr] 222 | ($typ:expr_2021, $msg:literal) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:225:10 [INFO] [stderr] | [INFO] [stderr] 225 | ($typ:expr_2021, ($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:225:29 [INFO] [stderr] | [INFO] [stderr] 225 | ($typ:expr_2021, ($($msg:expr_2021),+)) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:228:10 [INFO] [stderr] | [INFO] [stderr] 228 | ($typ:expr_2021, $msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/admin.rs:228:26 [INFO] [stderr] | [INFO] [stderr] 228 | ($typ:expr_2021, $msg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:413:1 [INFO] [stderr] | [INFO] [stderr] 413 | / async fn replace_send( [INFO] [stderr] 414 | | bot: Bot, [INFO] [stderr] 415 | | message: teloxide::requests::JsonRequest, [INFO] [stderr] 416 | | ) -> Result<()> { [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | async fn forward_shit(bot: Bot, message: Message) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:393:13 [INFO] [stderr] | [INFO] [stderr] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/utils.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | pub async fn send_and_delete_join_result(bot: Bot, chat_id: ChatId, message: String) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/utils.rs:57:9 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin/handler.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | (($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 41 | (($($msg:expr_2021),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin/handler.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | ($msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 47 | ($msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/join_handler.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | add_wating_handle, auth_database, get_data_by_msg, handler::*, user_finish, QuestionData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^ [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/link_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | add_wating_handle, auth_database, get_data_by_msg, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:222:15 [INFO] [stdout] | [INFO] [stdout] 222 | ($typ:expr, $msg:literal) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 222 | ($typ:expr_2021, $msg:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unused variable: `bot` [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:225:15 [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr_2021, ($($msg:expr),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/admin/link_handler.rs:143:29 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:225:29 [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr),+)) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 225 | ($typ:expr, ($($msg:expr_2021),+)) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:228:15 [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr_2021, $msg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/admin.rs:228:26 [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 228 | ($typ:expr, $msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:413:1 [INFO] [stdout] | [INFO] [stdout] 413 | / async fn replace_send( [INFO] [stdout] 414 | | bot: Bot, [INFO] [stdout] 415 | | message: teloxide::requests::JsonRequest, [INFO] [stdout] 416 | | ) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:386:1 [INFO] [stdout] | [INFO] [stdout] 386 | async fn forward_shit(bot: Bot, message: Message) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/utils.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub async fn send_and_delete_join_result(bot: Bot, chat_id: ChatId, message: String) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/utils.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> src/admin/link_handler.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/admin/auth_database.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub async fn add_authed(user_id: u64) -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/admin/auth_database.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/admin/auth_database.rs:11:1 [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/join_handler.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/link_handler.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 11 | pub async fn add_authed(user_id: u64) -> Result<()> { [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/main.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | async fn main() -> 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 a future release! [INFO] [stdout] = note: for more information, see issue #123748 [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/main.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | con.set(LAST_SENT_KEY, msg.id.0).await?; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/admin/auth_database.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `handle` [INFO] [stderr] --> src/admin/join_handler.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `handle` [INFO] [stderr] --> src/admin/link_handler.rs:66:13 [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:71:36 [INFO] [stdout] | [INFO] [stdout] 71 | ... if let Err(err) = res { [INFO] [stdout] | ^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:78:33 [INFO] [stdout] | [INFO] [stdout] 78 | ... } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match res { Err(err) => { [INFO] [stdout] 72 | bot.send_message( [INFO] [stdout] ... [INFO] [stdout] 77 | return Err(err); [INFO] [stdout] 78 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stderr] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/main.rs:41:7 [INFO] [stderr] | [INFO] [stderr] 41 | async fn main() -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #123748 [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stderr] --> src/main.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | con.set(LAST_SENT_KEY, msg.id.0).await?; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors; 8 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | if let Some(entities) = msg.entities() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:100:25 [INFO] [stdout] | [INFO] [stdout] 100 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 93 ~ match msg.entities() { Some(entities) => { [INFO] [stdout] 94 | if !entities.iter().any(|e| { [INFO] [stdout] ... [INFO] [stdout] 99 | } [INFO] [stdout] 100 ~ } _ => { [INFO] [stdout] 101 | return false; [INFO] [stdout] 102 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:104:42 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = if let Ok(con) = con { con } else { return false }; [INFO] [stdout] | ^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:104:66 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = if let Ok(con) = con { con } else { return false }; [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 104 | let mut con = match con { Ok(con) => { con } _ => { return false }}; [INFO] [stdout] | ~~~~~ ++++++++++++ ~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | ... if let Err(err) = res { [INFO] [stdout] | ^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 137 ~ match res { Err(err) => { [INFO] [stdout] 138 | bot.send_message( [INFO] [stdout] ... [INFO] [stdout] 143 | return Err(err); [INFO] [stdout] 144 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:165:28 [INFO] [stdout] | [INFO] [stdout] 165 | if let Some(text) = msg.text() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:168:25 [INFO] [stdout] | [INFO] [stdout] 168 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match msg.text() { Some(text) => { [INFO] [stdout] 166 | let text = text.trim().replace(['\r', '\n'], ""); [INFO] [stdout] 167 | config.forward_pattern.is_match(&text) [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | false [INFO] [stdout] 170 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:260:16 [INFO] [stdout] | [INFO] [stdout] 260 | if let Err(RequestError::Api(teloxide::ApiError::UserNotFound)) = chat_member { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 260 ~ match chat_member { Err(RequestError::Api(teloxide::ApiError::UserNotFound)) => { [INFO] [stdout] 261 | let request = bot [INFO] [stdout] ... [INFO] [stdout] 268 | return Ok(()); [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | chat_member?; [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(reply) = message.reply_to_message() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 273 ~ match message.reply_to_message() { Some(reply) => { [INFO] [stdout] 274 | forward_shit(bot.clone(), reply.to_owned()).await?; [INFO] [stdout] 275 | bot.delete_message(message.chat.id, message.id).await?; [INFO] [stdout] 276 ~ } _ => { [INFO] [stdout] 277 | let request = bot [INFO] [stdout] ... [INFO] [stdout] 280 | replace_send(bot, request).await?; [INFO] [stdout] 281 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:310:16 [INFO] [stdout] | [INFO] [stdout] 310 | if let Some(reply) = message.reply_to_message() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 310 ~ match message.reply_to_message() { Some(reply) => { [INFO] [stdout] 311 | let (res, name) = if let Some(sender) = reply.sender_chat() { [INFO] [stdout] ... [INFO] [stdout] 357 | } [INFO] [stdout] 358 ~ } _ => { [INFO] [stdout] 359 | bot.send_message(message.chat.id, "没有选择消息") [INFO] [stdout] 360 | .reply_to_message_id(message.id) [INFO] [stdout] 361 | .await?; [INFO] [stdout] 362 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if let Some(handles) = self.handles.get_mut(&question_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 99 ~ match self.handles.get_mut(&question_id) { Some(handles) => { [INFO] [stdout] 100 | handles.push(handle); [INFO] [stdout] 101 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(mut data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 158 ~ match get_data_by_msg(&msg_id.0).await { Some(mut data) => { [INFO] [stdout] 159 | let result = callback_handle(bot.clone(), &callback, data.deref_mut()).await?; [INFO] [stdout] ... [INFO] [stdout] 171 | (result, data.handler, data.user.id) [INFO] [stdout] 172 ~ } _ => { [INFO] [stdout] 173 | bot.answer_callback_query(callback.id).await?; [INFO] [stdout] 174 | return Ok(()); [INFO] [stdout] 175 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:208:11 [INFO] [stdout] | [INFO] [stdout] 208 | while let Some((chat, msg)) = TO_DELETE_MESSAGE.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^-----------------^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:210:5 [INFO] [stdout] | [INFO] [stdout] 210 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:302:12 [INFO] [stdout] | [INFO] [stdout] 302 | if let Some(mut data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 302 ~ match get_data_by_msg(&msg_id.0).await { Some(mut data) => { [INFO] [stdout] 303 | data.left_minutes -= 1; [INFO] [stdout] ... [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } _ => { [INFO] [stdout] 314 | break; [INFO] [stdout] 315 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin.rs:321:11 [INFO] [stdout] | [INFO] [stdout] 321 | while let Some((chat, msg)) = TO_DELETE_MESSAGE.pop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^-----------------^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:35:23 [INFO] [stdout] | [INFO] [stdout] 35 | let mut user = if let Some(data) = super::get_data_by_msg(&msg_id).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 35 ~ let mut user = match super::get_data_by_msg(&msg_id).await { Some(data) => { [INFO] [stdout] 36 | data [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | return Ok(()); [INFO] [stdout] 39 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:184:16 [INFO] [stdout] | [INFO] [stdout] 184 | if let Some(data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/join_handler.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 184 ~ match get_data_by_msg(&msg_id.0).await { Some(data) => { [INFO] [stdout] 185 | (data.cas, data.tried_times, rank_user(&data.user)) [INFO] [stdout] 186 ~ } _ => { [INFO] [stdout] 187 | return res!(); [INFO] [stdout] 188 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/admin/link_handler.rs:95:16 [INFO] [stdout] | [INFO] [stdout] 95 | if let Some(data) = get_data_by_msg(&msg_id.0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/admin/link_handler.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 95 ~ match get_data_by_msg(&msg_id.0).await { Some(data) => { [INFO] [stdout] 96 | data.tried_times [INFO] [stdout] 97 ~ } _ => { [INFO] [stdout] 98 | return res!(); [INFO] [stdout] 99 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.16s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking shit_bot v0.1.0 (/tmp/fixit) [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/join_handler.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | add_wating_handle, auth_database, get_data_by_msg, handler::*, user_finish, QuestionData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/join_handler.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | add_wating_handle, auth_database, get_data_by_msg, handler::*, user_finish, QuestionData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/link_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | add_wating_handle, auth_database, get_data_by_msg, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `add_wating_handle` [INFO] [stdout] --> src/admin/link_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | add_wating_handle, auth_database, get_data_by_msg, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | con.set(LAST_SENT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | con.set(LAST_SHIT_KEY, sent.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | con.set(message.id.0, sent.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/main.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | con.set(message.id.0, sent.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/utils.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> src/admin/link_handler.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/utils.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | con.set(LAST_JOIN_RESULT_KEY, res.id.0).await?; [INFO] [stdout] | ^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::set` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 311 | | fn set(key: K, value: V) { [INFO] [stdout] | | --- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::set` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> src/admin/link_handler.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | async fn allow_send_message(bot: Bot, (msg_id, data): (i32, QuestionData)) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/admin/auth_database.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stdout] | ^^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::sadd` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 681 | | fn sadd(key: K, member: M) { [INFO] [stdout] | | ---- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::sadd` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied [INFO] [stdout] --> src/admin/auth_database.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | con.sadd(AUTHED_USERS_KEY, user_id).await?; [INFO] [stdout] | ^^^^ the trait `FromRedisValue` is not implemented for `!` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `FromRedisValue`: [INFO] [stdout] () [INFO] [stdout] (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T10, T11, T12) [INFO] [stdout] (T11, T12) [INFO] [stdout] (T12,) [INFO] [stdout] (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] (T4, T5, T6, T7, T8, T9, T10, T11, T12) [INFO] [stdout] and 30 others [INFO] [stdout] = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 for more information) [INFO] [stdout] = help: did you intend to use the type `()` here instead? [INFO] [stdout] note: required by a bound in `redis::AsyncCommands::sadd` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/redis-0.21.7/src/commands.rs:296:1 [INFO] [stdout] | [INFO] [stdout] 296 | / implement_commands! { [INFO] [stdout] 297 | | 'a [INFO] [stdout] 298 | | // most common operations [INFO] [stdout] ... | [INFO] [stdout] 681 | | fn sadd(key: K, member: M) { [INFO] [stdout] | | ---- required by a bound in this associated function [INFO] [stdout] ... | [INFO] [stdout] 1979 | | } [INFO] [stdout] 1980 | | } [INFO] [stdout] | |_^ required by this bound in `AsyncCommands::sadd` [INFO] [stdout] = note: this error originates in the macro `implement_commands` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/join_handler.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/join_handler.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/link_handler.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/admin/link_handler.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let handle = tokio::spawn(super::waiting_answer( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `shit_bot` (bin "shit_bot" test) due to 6 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 5 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `shit_bot` (bin "shit_bot") due to 6 previous errors; 5 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "5595ec28a92dfe13bf917c906477b4a50d03826b1b9d35204ab758717c53e75a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5595ec28a92dfe13bf917c906477b4a50d03826b1b9d35204ab758717c53e75a", kill_on_drop: false }` [INFO] [stdout] 5595ec28a92dfe13bf917c906477b4a50d03826b1b9d35204ab758717c53e75a