[INFO] fetching crate pi_quic 0.7.0... [INFO] checking pi_quic-0.7.0 against try#a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d for pr-145342-1 [INFO] extracting crate pi_quic 0.7.0 into /workspace/builds/worker-4-tc2/source [INFO] started tweaking crates.io crate pi_quic 0.7.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate pi_quic 0.7.0 [INFO] tweaked toml for crates.io crate pi_quic 0.7.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate pi_quic 0.7.0 on toolchain a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate pi_quic 0.7.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 079efd608f078233e60e21afc935aaca0efcaa3664ffad0820bb1b93c7ece131 [INFO] running `Command { std: "docker" "start" "-a" "079efd608f078233e60e21afc935aaca0efcaa3664ffad0820bb1b93c7ece131", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "079efd608f078233e60e21afc935aaca0efcaa3664ffad0820bb1b93c7ece131", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "079efd608f078233e60e21afc935aaca0efcaa3664ffad0820bb1b93c7ece131", kill_on_drop: false }` [INFO] [stdout] 079efd608f078233e60e21afc935aaca0efcaa3664ffad0820bb1b93c7ece131 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2e38c9161e91fe50b8ca1bef9cf4aba136d7279cb6c0baa931557265bcc8e3d3 [INFO] running `Command { std: "docker" "start" "-a" "2e38c9161e91fe50b8ca1bef9cf4aba136d7279cb6c0baa931557265bcc8e3d3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking once_cell v1.21.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Compiling zerocopy v0.8.23 [INFO] [stderr] Compiling cc v1.2.16 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling getrandom v0.3.1 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Compiling rustls v0.20.9 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling time-core v0.1.3 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling time-macros v0.2.20 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking pi_slot_deque v0.2.1 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking rustls-pemfile v1.0.4 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking pi_ext_heap v0.1.1 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Checking rustls-native-certs v0.6.3 [INFO] [stderr] Checking rustls-pemfile v0.2.1 [INFO] [stderr] Checking time v0.3.39 [INFO] [stderr] Checking raw-cpuid v11.5.0 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking rusticata-macros v4.1.0 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Checking miniz_oxide v0.8.5 [INFO] [stderr] Checking event-listener v5.4.0 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking webpki v0.22.4 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking pi_slot_wheel v0.2.0 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking pi_wheel v0.1.0 [INFO] [stderr] Checking pi_timer v0.1.0 [INFO] [stderr] Checking flume v0.11.1 [INFO] [stderr] Compiling asn1-rs-impl v0.1.0 [INFO] [stderr] Compiling asn1-rs-derive v0.4.0 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking pi_cancel_timer v0.2.0 [INFO] [stderr] Checking event-listener-strategy v0.5.3 [INFO] [stderr] Checking quanta v0.12.5 [INFO] [stderr] Checking pi_hash v0.1.1 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking st3 v0.4.1 [INFO] [stderr] Checking crossbeam-channel v0.5.14 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling oid-registry v0.6.1 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking pi_wrr v0.1.1 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking asn1-rs v0.5.2 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Checking quinn-proto v0.8.4 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking tokio v1.44.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking data-encoding v2.8.0 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking pem v2.0.1 [INFO] [stderr] Checking env_logger v0.9.3 [INFO] [stderr] Checking der-parser v8.2.0 [INFO] [stderr] Checking x509-parser v0.15.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking pi-async-rt v0.2.5 [INFO] [stderr] Checking pi_blocking_udp v0.3.0 [INFO] [stderr] Checking pi_quic v0.7.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/connect.rs:890:42 [INFO] [stdout] | [INFO] [stdout] 890 | ready_reader.set((*stream.ready_len.get())); //设置实际读取的字节数 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 890 - ready_reader.set((*stream.ready_len.get())); //设置实际读取的字节数 [INFO] [stdout] 890 + ready_reader.set(*stream.ready_len.get()); //设置实际读取的字节数 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `let` scrutinee expression [INFO] [stdout] --> src/connect.rs:1033:66 [INFO] [stdout] | [INFO] [stdout] 1033 | ... if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1033 - if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] 1033 + if let Some(write_buf) = &mut *stream.write_buf.get() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `let` scrutinee expression [INFO] [stdout] --> src/connect.rs:1078:50 [INFO] [stdout] | [INFO] [stdout] 1078 | if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1078 - if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] 1078 + if let Some(write_buf) = &mut *stream.write_buf.get() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing` [INFO] [stdout] --> src/connect_pool.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use tracing; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/connect_pool.rs:289:28 [INFO] [stdout] | [INFO] [stdout] 289 | if (expired != &time) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 289 - if (expired != &time) { [INFO] [stdout] 289 + if expired != &time { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/connect_pool.rs:325:23 [INFO] [stdout] | [INFO] [stdout] 325 | .poll((&*socket.get()), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 325 - .poll((&*socket.get()), [INFO] [stdout] 325 + .poll(&*socket.get(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/connect_pool.rs:349:46 [INFO] [stdout] | [INFO] [stdout] 349 | ... let socket_mut = (&mut *socket.get()); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 349 - let socket_mut = (&mut *socket.get()); [INFO] [stdout] 349 + let socket_mut = &mut *socket.get(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/connect_pool.rs:386:46 [INFO] [stdout] | [INFO] [stdout] 386 | ... let socket_mut = (&mut *socket.get()); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 386 - let socket_mut = (&mut *socket.get()); [INFO] [stdout] 386 + let socket_mut = &mut *socket.get(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:558:35 [INFO] [stdout] | [INFO] [stdout] 558 | let socket_mut = unsafe { (&mut *socket.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 558 - let socket_mut = unsafe { (&mut *socket.get()) }; [INFO] [stdout] 558 + let socket_mut = unsafe { &mut *socket.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:600:43 [INFO] [stdout] | [INFO] [stdout] 600 | let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 600 - let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] 600 + let socket_mut = unsafe { &mut *socket_copy.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:642:47 [INFO] [stdout] | [INFO] [stdout] 642 | let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 642 - let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] 642 + let socket_mut = unsafe { &mut *socket_copy.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `readed_len` is never read [INFO] [stdout] --> src/client.rs:1103:17 [INFO] [stdout] | [INFO] [stdout] 1103 | let mut readed_len = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:1094:32 [INFO] [stdout] | [INFO] [stdout] 1094 | ... mut len: usize) -> Option { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serial::AsyncRuntime` [INFO] [stdout] --> src/connect_pool.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | serial::AsyncRuntime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Socket` [INFO] [stdout] --> src/connect_pool.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | use udp::{Socket, SocketHandle as UdpSocketHandle}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::task::SpawnExt` [INFO] [stdout] --> src/server.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use futures::task::SpawnExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncRuntime` [INFO] [stdout] --> src/client.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | rt::{AsyncRuntime, serial::AsyncValue, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::task::SpawnExt` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use futures::task::SpawnExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect.rs:543:17 [INFO] [stdout] | [INFO] [stdout] 543 | let mut len = data.contents.len(); //数据报文的大小 [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect.rs:705:21 [INFO] [stdout] | [INFO] [stdout] 705 | let mut stream = if let Some(id) = &self.main_stream_id { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/connect.rs:831:29 [INFO] [stdout] | [INFO] [stdout] 831 | let remaining = unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect_pool.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pool = self; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `keep_going` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:249:21 [INFO] [stdout] | [INFO] [stdout] 249 | let mut keep_going = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_keep_going` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connect_pool.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | if let Err(e) = (&*socket.get()).write_transmit(t) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `keep_going` is never read [INFO] [stdout] --> src/connect_pool.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | keep_going = true; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `keep_going` is never read [INFO] [stdout] --> src/connect_pool.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | keep_going = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/connect_pool.rs:372:52 [INFO] [stdout] | [INFO] [stdout] 372 | Stream(StreamEvent::Writable { id }) => { [INFO] [stdout] | ^^ help: try ignoring the field: `id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dir` [INFO] [stdout] --> src/connect_pool.rs:442:53 [INFO] [stdout] | [INFO] [stdout] 442 | Stream(StreamEvent::Available { dir }) => { [INFO] [stdout] | ^^^ help: try ignoring the field: `dir: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connect_pool.rs:522:24 [INFO] [stdout] | [INFO] [stdout] 522 | if let Err(e) = (&*socket.get()).send_transmit(transmit) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `close_reason` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:598:25 [INFO] [stdout] | [INFO] [stdout] 598 | let mut close_reason: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_close_reason` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `close_reason` is never read [INFO] [stdout] --> src/connect_pool.rs:627:25 [INFO] [stdout] | [INFO] [stdout] 627 | close_reason = Some(Err(e)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `close_reason` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:639:25 [INFO] [stdout] | [INFO] [stdout] 639 | let mut close_reason: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_close_reason` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `close_reason` is never read [INFO] [stdout] --> src/connect_pool.rs:660:29 [INFO] [stdout] | [INFO] [stdout] 660 | ... close_reason = Some(Err(e)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/connect_pool.rs:671:43 [INFO] [stdout] | [INFO] [stdout] 671 | fn handle_stream_close(rt: &LocalTaskRuntime<()>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/client.rs:855:9 [INFO] [stdout] | [INFO] [stdout] 855 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sender` is never read [INFO] [stdout] --> src/lib.rs:412:5 [INFO] [stdout] | [INFO] [stdout] 406 | struct InnerSocketHandle { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 412 | sender: Sender, //Quic事件发送器 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIN_EXPAND_STREAMS_LEN` is never used [INFO] [stdout] --> src/connect.rs:46:7 [INFO] [stdout] | [INFO] [stdout] 46 | const MIN_EXPAND_STREAMS_LEN: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_EXPAND_STREAMS_LEN` is never used [INFO] [stdout] --> src/connect.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const MAX_EXPAND_STREAMS_LEN: usize = 0x10000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection` is never used [INFO] [stdout] --> src/connect.rs:206:19 [INFO] [stdout] | [INFO] [stdout] 91 | impl QuicSocket { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 206 | pub(crate) fn get_connection(&self) -> &Connection { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stream_type` is never read [INFO] [stdout] --> src/connect.rs:1391:5 [INFO] [stdout] | [INFO] [stdout] 1390 | pub struct QuicStream { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1391 | stream_type: Dir, //流类型 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/connect_pool.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct QuicSocketPool { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 43 | id: usize, //连接池唯一id [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `clock` is never read [INFO] [stdout] --> src/server.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 296 | struct InnerQuicListener { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 304 | clock: Instant, //内部时钟 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InsecureClientCertVerifier` is never constructed [INFO] [stdout] --> src/server.rs:316:8 [INFO] [stdout] | [INFO] [stdout] 316 | struct InsecureClientCertVerifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:468:13 [INFO] [stdout] | [INFO] [stdout] 468 | / sender [INFO] [stdout] 469 | | .send(QuicEvent::Timeout(self.handle, Some((timeout, event)))); [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 468 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | / sender [INFO] [stdout] 477 | | .send(QuicEvent::Timeout(self.handle, None)); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 476 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | / sender [INFO] [stdout] 567 | | .send(QuicEvent::StreamReady(self.handle, stream_id, ready)); [INFO] [stdout] | |____________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 566 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:777:29 [INFO] [stdout] | [INFO] [stdout] 777 | / ... sender [INFO] [stdout] 778 | | ... .send(QuicEvent::StreamReady(self.handle, stream_id, QuicSocketReady::Readable)); [INFO] [stdout] | |__________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 777 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `quinn_proto::connection::streams::ShouldTransmit` that must be used [INFO] [stdout] --> src/connect.rs:784:17 [INFO] [stdout] | [INFO] [stdout] 784 | chunks.finalize(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: A frame might need to be enqueued [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 784 | let _ = chunks.finalize(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect.rs:997:17 [INFO] [stdout] | [INFO] [stdout] 997 | drop(write_buf); [INFO] [stdout] | ^^^^^---------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut BytesMut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 997 - drop(write_buf); [INFO] [stdout] 997 + let _ = write_buf; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:1134:17 [INFO] [stdout] | [INFO] [stdout] 1134 | sender.send(QuicEvent::StreamWrite(self.handle, stream_id, buf.as_ref().to_vec())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1134 | let _ = sender.send(QuicEvent::StreamWrite(self.handle, stream_id, buf.as_ref().to_vec())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Future` that must be used [INFO] [stdout] --> src/connect_pool.rs:159:25 [INFO] [stdout] | [INFO] [stdout] 159 | / handle_timeout_timer(&mut pool, [INFO] [stdout] 160 | | handle, [INFO] [stdout] 161 | | timeout_event); [INFO] [stdout] | |___________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect_pool.rs:620:33 [INFO] [stdout] | [INFO] [stdout] 620 | ... drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut QuicSocket` [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 620 - drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] 620 + let _ = socket_mut; //在继续调用前释放连接引用 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect_pool.rs:654:33 [INFO] [stdout] | [INFO] [stdout] 654 | ... drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut QuicSocket` [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 654 - drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] 654 + let _ = socket_mut; //在继续调用前释放连接引用 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | / handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] 63 | | format!("Receive udp failed, uid: {:?}, remote: {:?}, local: {:?}, reason: {:?}", [INFO] [stdout] 64 | | handle.get_uid(), [INFO] [stdout] 65 | | handle.get_remote(), [INFO] [stdout] 66 | | handle.get_local(), [INFO] [stdout] 67 | | e)))); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/client.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | / handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] 92 | | format!("Read udp failed, uid: {:?}, remote: {:?}, local: {:?}, reason: {:?}", [INFO] [stdout] 93 | | handle.get_uid(), [INFO] [stdout] 94 | | handle.get_remote(), [INFO] [stdout] 95 | | handle.get_local(), [INFO] [stdout] 96 | | e)))); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 91 | let _ = handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking quinn-udp v0.1.4 [INFO] [stderr] Checking quinn v0.8.5 [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/connect.rs:890:42 [INFO] [stdout] | [INFO] [stdout] 890 | ready_reader.set((*stream.ready_len.get())); //设置实际读取的字节数 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 890 - ready_reader.set((*stream.ready_len.get())); //设置实际读取的字节数 [INFO] [stdout] 890 + ready_reader.set(*stream.ready_len.get()); //设置实际读取的字节数 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `let` scrutinee expression [INFO] [stdout] --> src/connect.rs:1033:66 [INFO] [stdout] | [INFO] [stdout] 1033 | ... if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1033 - if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] 1033 + if let Some(write_buf) = &mut *stream.write_buf.get() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `let` scrutinee expression [INFO] [stdout] --> src/connect.rs:1078:50 [INFO] [stdout] | [INFO] [stdout] 1078 | if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1078 - if let Some(write_buf) = (&mut *stream.write_buf.get()) { [INFO] [stdout] 1078 + if let Some(write_buf) = &mut *stream.write_buf.get() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing` [INFO] [stdout] --> src/connect_pool.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use tracing; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/connect_pool.rs:289:28 [INFO] [stdout] | [INFO] [stdout] 289 | if (expired != &time) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 289 - if (expired != &time) { [INFO] [stdout] 289 + if expired != &time { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/connect_pool.rs:325:23 [INFO] [stdout] | [INFO] [stdout] 325 | .poll((&*socket.get()), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 325 - .poll((&*socket.get()), [INFO] [stdout] 325 + .poll(&*socket.get(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/connect_pool.rs:349:46 [INFO] [stdout] | [INFO] [stdout] 349 | ... let socket_mut = (&mut *socket.get()); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 349 - let socket_mut = (&mut *socket.get()); [INFO] [stdout] 349 + let socket_mut = &mut *socket.get(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/connect_pool.rs:386:46 [INFO] [stdout] | [INFO] [stdout] 386 | ... let socket_mut = (&mut *socket.get()); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 386 - let socket_mut = (&mut *socket.get()); [INFO] [stdout] 386 + let socket_mut = &mut *socket.get(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:558:35 [INFO] [stdout] | [INFO] [stdout] 558 | let socket_mut = unsafe { (&mut *socket.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 558 - let socket_mut = unsafe { (&mut *socket.get()) }; [INFO] [stdout] 558 + let socket_mut = unsafe { &mut *socket.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:600:43 [INFO] [stdout] | [INFO] [stdout] 600 | let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 600 - let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] 600 + let socket_mut = unsafe { &mut *socket_copy.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/connect_pool.rs:642:47 [INFO] [stdout] | [INFO] [stdout] 642 | let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 642 - let socket_mut = unsafe { (&mut *socket_copy.get()) }; [INFO] [stdout] 642 + let socket_mut = unsafe { &mut *socket_copy.get() }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncService` [INFO] [stdout] --> tests/test.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | use udp::{AsyncService, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::read` [INFO] [stdout] --> tests/test.rs:1692:13 [INFO] [stdout] | [INFO] [stdout] 1692 | use std::fs::read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `readed_len` is never read [INFO] [stdout] --> src/client.rs:1103:17 [INFO] [stdout] | [INFO] [stdout] 1103 | let mut readed_len = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:1094:32 [INFO] [stdout] | [INFO] [stdout] 1094 | ... mut len: usize) -> Option { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::prelude` [INFO] [stdout] --> tests/test.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use tracing_subscriber::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncRuntime` [INFO] [stdout] --> tests/test.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | use pi_async_rt::rt::{serial::{AsyncRuntime, AsyncRuntimeBuilder}}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> tests/test.rs:13:34 [INFO] [stdout] | [INFO] [stdout] 13 | stream::StreamExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `endpoint` [INFO] [stdout] --> tests/test.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let (endpoint, mut incoming) = quinn::Endpoint::server(server_config, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoint` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | let mut server_crypto = rustls::ServerConfig::builder() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let mut client_crypto = rustls::ClientConfig::builder() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:110:14 [INFO] [stdout] | [INFO] [stdout] 110 | let (mut send, recv) = con [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ready_len` is never read [INFO] [stdout] --> tests/test.rs:280:21 [INFO] [stdout] | [INFO] [stdout] 280 | let mut ready_len = 0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> tests/test.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | handle: SocketHandle, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> tests/test.rs:358:25 [INFO] [stdout] | [INFO] [stdout] 358 | result: Result) -> LocalBoxFuture<'static, ()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:415:21 [INFO] [stdout] | [INFO] [stdout] 415 | let mut client_crypto = rustls::ClientConfig::builder() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:427:21 [INFO] [stdout] | [INFO] [stdout] 427 | let mut con = endpoint [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:435:22 [INFO] [stdout] | [INFO] [stdout] 435 | let (mut send, recv) = con [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serial::AsyncRuntime` [INFO] [stdout] --> src/connect_pool.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | serial::AsyncRuntime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Socket` [INFO] [stdout] --> src/connect_pool.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | use udp::{Socket, SocketHandle as UdpSocketHandle}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::task::SpawnExt` [INFO] [stdout] --> src/server.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use futures::task::SpawnExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncRuntime` [INFO] [stdout] --> src/client.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | rt::{AsyncRuntime, serial::AsyncValue, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::task::SpawnExt` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use futures::task::SpawnExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `endpoint` [INFO] [stdout] --> tests/test.rs:480:14 [INFO] [stdout] | [INFO] [stdout] 480 | let (endpoint, mut incoming) = quinn::Endpoint::server(server_config, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoint` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:470:13 [INFO] [stdout] | [INFO] [stdout] 470 | let mut server_crypto = rustls::ServerConfig::builder() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect.rs:543:17 [INFO] [stdout] | [INFO] [stdout] 543 | let mut len = data.contents.len(); //数据报文的大小 [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect.rs:705:21 [INFO] [stdout] | [INFO] [stdout] 705 | let mut stream = if let Some(id) = &self.main_stream_id { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/connect.rs:831:29 [INFO] [stdout] | [INFO] [stdout] 831 | let remaining = unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connect_pool.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pool = self; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `keep_going` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:249:21 [INFO] [stdout] | [INFO] [stdout] 249 | let mut keep_going = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_keep_going` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connect_pool.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | if let Err(e) = (&*socket.get()).write_transmit(t) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `keep_going` is never read [INFO] [stdout] --> src/connect_pool.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | keep_going = true; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `keep_going` is never read [INFO] [stdout] --> src/connect_pool.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | keep_going = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/connect_pool.rs:372:52 [INFO] [stdout] | [INFO] [stdout] 372 | Stream(StreamEvent::Writable { id }) => { [INFO] [stdout] | ^^ help: try ignoring the field: `id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dir` [INFO] [stdout] --> src/connect_pool.rs:442:53 [INFO] [stdout] | [INFO] [stdout] 442 | Stream(StreamEvent::Available { dir }) => { [INFO] [stdout] | ^^^ help: try ignoring the field: `dir: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ready_len` is never read [INFO] [stdout] --> tests/test.rs:1170:21 [INFO] [stdout] | [INFO] [stdout] 1170 | let mut ready_len = 0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> tests/test.rs:1196:25 [INFO] [stdout] | [INFO] [stdout] 1196 | if let Some(buf) = handle.get_read_buffer(&stream_id).as_ref().unwrap().lock().as_mut() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connect_pool.rs:522:24 [INFO] [stdout] | [INFO] [stdout] 522 | if let Err(e) = (&*socket.get()).send_transmit(transmit) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> tests/test.rs:1238:25 [INFO] [stdout] | [INFO] [stdout] 1238 | handle: SocketHandle, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> tests/test.rs:1239:25 [INFO] [stdout] | [INFO] [stdout] 1239 | result: Result) -> LocalBoxFuture<'static, ()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `close_reason` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:598:25 [INFO] [stdout] | [INFO] [stdout] 598 | let mut close_reason: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_close_reason` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `close_reason` is never read [INFO] [stdout] --> src/connect_pool.rs:627:25 [INFO] [stdout] | [INFO] [stdout] 627 | close_reason = Some(Err(e)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `close_reason` is assigned to, but never used [INFO] [stdout] --> src/connect_pool.rs:639:25 [INFO] [stdout] | [INFO] [stdout] 639 | let mut close_reason: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_close_reason` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `close_reason` is never read [INFO] [stdout] --> src/connect_pool.rs:660:29 [INFO] [stdout] | [INFO] [stdout] 660 | ... close_reason = Some(Err(e)); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/connect_pool.rs:671:43 [INFO] [stdout] | [INFO] [stdout] 671 | fn handle_stream_close(rt: &LocalTaskRuntime<()>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ready_len` is never read [INFO] [stdout] --> tests/test.rs:1462:21 [INFO] [stdout] | [INFO] [stdout] 1462 | let mut ready_len = 0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> tests/test.rs:1488:25 [INFO] [stdout] | [INFO] [stdout] 1488 | if let Some(buf) = handle.get_read_buffer(&stream_id).as_ref().unwrap().lock().as_mut() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> tests/test.rs:1530:25 [INFO] [stdout] | [INFO] [stdout] 1530 | handle: SocketHandle, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> tests/test.rs:1531:25 [INFO] [stdout] | [INFO] [stdout] 1531 | result: Result) -> LocalBoxFuture<'static, ()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `intermediates` [INFO] [stdout] --> tests/test.rs:1687:27 [INFO] [stdout] | [INFO] [stdout] 1687 | intermediates: &[rustls::Certificate], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scts` [INFO] [stdout] --> tests/test.rs:1689:27 [INFO] [stdout] | [INFO] [stdout] 1689 | scts: &mut dyn Iterator, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_scts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ocsp_response` [INFO] [stdout] --> tests/test.rs:1690:27 [INFO] [stdout] | [INFO] [stdout] 1690 | ocsp_response: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ocsp_response` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> tests/test.rs:1691:27 [INFO] [stdout] | [INFO] [stdout] 1691 | now: SystemTime) -> std::result::Result { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:1694:13 [INFO] [stdout] | [INFO] [stdout] 1694 | let mut pem = Pem { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/test.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | send_stream.write_all(buf.as_slice()).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = send_stream.write_all(buf.as_slice()).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/test.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | send_stream.write_all(b"Hello World!").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 192 | let _ = send_stream.write_all(b"Hello World!").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/client.rs:855:9 [INFO] [stdout] | [INFO] [stdout] 855 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sender` is never read [INFO] [stdout] --> src/lib.rs:412:5 [INFO] [stdout] | [INFO] [stdout] 406 | struct InnerSocketHandle { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 412 | sender: Sender, //Quic事件发送器 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIN_EXPAND_STREAMS_LEN` is never used [INFO] [stdout] --> src/connect.rs:46:7 [INFO] [stdout] | [INFO] [stdout] 46 | const MIN_EXPAND_STREAMS_LEN: usize = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_EXPAND_STREAMS_LEN` is never used [INFO] [stdout] --> src/connect.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const MAX_EXPAND_STREAMS_LEN: usize = 0x10000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection` is never used [INFO] [stdout] --> src/connect.rs:206:19 [INFO] [stdout] | [INFO] [stdout] 91 | impl QuicSocket { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 206 | pub(crate) fn get_connection(&self) -> &Connection { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stream_type` is never read [INFO] [stdout] --> src/connect.rs:1391:5 [INFO] [stdout] | [INFO] [stdout] 1390 | pub struct QuicStream { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1391 | stream_type: Dir, //流类型 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/connect_pool.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct QuicSocketPool { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 43 | id: usize, //连接池唯一id [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `clock` is never read [INFO] [stdout] --> src/server.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 296 | struct InnerQuicListener { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 304 | clock: Instant, //内部时钟 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InsecureClientCertVerifier` is never constructed [INFO] [stdout] --> src/server.rs:316:8 [INFO] [stdout] | [INFO] [stdout] 316 | struct InsecureClientCertVerifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:468:13 [INFO] [stdout] | [INFO] [stdout] 468 | / sender [INFO] [stdout] 469 | | .send(QuicEvent::Timeout(self.handle, Some((timeout, event)))); [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 468 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | / sender [INFO] [stdout] 477 | | .send(QuicEvent::Timeout(self.handle, None)); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 476 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | / sender [INFO] [stdout] 567 | | .send(QuicEvent::StreamReady(self.handle, stream_id, ready)); [INFO] [stdout] | |____________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 566 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:777:29 [INFO] [stdout] | [INFO] [stdout] 777 | / ... sender [INFO] [stdout] 778 | | ... .send(QuicEvent::StreamReady(self.handle, stream_id, QuicSocketReady::Readable)); [INFO] [stdout] | |__________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 777 | let _ = sender [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `quinn_proto::connection::streams::ShouldTransmit` that must be used [INFO] [stdout] --> src/connect.rs:784:17 [INFO] [stdout] | [INFO] [stdout] 784 | chunks.finalize(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: A frame might need to be enqueued [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 784 | let _ = chunks.finalize(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect.rs:997:17 [INFO] [stdout] | [INFO] [stdout] 997 | drop(write_buf); [INFO] [stdout] | ^^^^^---------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut BytesMut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 997 - drop(write_buf); [INFO] [stdout] 997 + let _ = write_buf; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/connect.rs:1134:17 [INFO] [stdout] | [INFO] [stdout] 1134 | sender.send(QuicEvent::StreamWrite(self.handle, stream_id, buf.as_ref().to_vec())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1134 | let _ = sender.send(QuicEvent::StreamWrite(self.handle, stream_id, buf.as_ref().to_vec())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Future` that must be used [INFO] [stdout] --> src/connect_pool.rs:159:25 [INFO] [stdout] | [INFO] [stdout] 159 | / handle_timeout_timer(&mut pool, [INFO] [stdout] 160 | | handle, [INFO] [stdout] 161 | | timeout_event); [INFO] [stdout] | |___________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect_pool.rs:620:33 [INFO] [stdout] | [INFO] [stdout] 620 | ... drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut QuicSocket` [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 620 - drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] 620 + let _ = socket_mut; //在继续调用前释放连接引用 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/connect_pool.rs:654:33 [INFO] [stdout] | [INFO] [stdout] 654 | ... drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut QuicSocket` [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 654 - drop(socket_mut); //在继续调用前释放连接引用 [INFO] [stdout] 654 + let _ = socket_mut; //在继续调用前释放连接引用 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | / handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] 63 | | format!("Receive udp failed, uid: {:?}, remote: {:?}, local: {:?}, reason: {:?}", [INFO] [stdout] 64 | | handle.get_uid(), [INFO] [stdout] 65 | | handle.get_remote(), [INFO] [stdout] 66 | | handle.get_local(), [INFO] [stdout] 67 | | e)))); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/client.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | / handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] 92 | | format!("Read udp failed, uid: {:?}, remote: {:?}, local: {:?}, reason: {:?}", [INFO] [stdout] 93 | | handle.get_uid(), [INFO] [stdout] 94 | | handle.get_remote(), [INFO] [stdout] 95 | | handle.get_local(), [INFO] [stdout] 96 | | e)))); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 91 | let _ = handle.close(Err(Error::new(ErrorKind::Other, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s [INFO] running `Command { std: "docker" "inspect" "2e38c9161e91fe50b8ca1bef9cf4aba136d7279cb6c0baa931557265bcc8e3d3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e38c9161e91fe50b8ca1bef9cf4aba136d7279cb6c0baa931557265bcc8e3d3", kill_on_drop: false }` [INFO] [stdout] 2e38c9161e91fe50b8ca1bef9cf4aba136d7279cb6c0baa931557265bcc8e3d3