[INFO] fetching crate rusty-dtls 0.1.0...
[INFO] testing rusty-dtls-0.1.0 against 1.91.0 for beta-1.92-2
[INFO] extracting crate rusty-dtls 0.1.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate rusty-dtls 0.1.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rusty-dtls 0.1.0
[INFO] tweaked toml for crates.io crate rusty-dtls 0.1.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rusty-dtls 0.1.0 on toolchain 1.91.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rusty-dtls 0.1.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" "+1.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded embedded-nal v0.9.0
[INFO] [stderr]   Downloaded miniz_oxide v0.8.3
[INFO] [stderr]   Downloaded embedded-nal-async v0.8.0
[INFO] [stderr]   Downloaded std-embedded-time v0.1.0
[INFO] [stderr]   Downloaded embassy-futures v0.1.1
[INFO] [stderr]   Downloaded dns-lookup v2.0.4
[INFO] [stderr]   Downloaded embedded-hal-async v1.0.0
[INFO] [stderr]   Downloaded simple_logger v4.3.3
[INFO] [stderr]   Downloaded embedded-hal v1.0.0
[INFO] [stderr]   Downloaded async-io v2.4.0
[INFO] [stderr]   Downloaded polling v3.7.4
[INFO] [stderr]   Downloaded embedded-time v0.12.1
[INFO] [stderr]   Downloaded value-bag v1.10.0
[INFO] [stderr]   Downloaded embedded-io-async v0.6.1
[INFO] [stderr]   Downloaded std-embedded-nal-async v0.3.0
[INFO] [stderr]   Downloaded async-std v1.13.0
[INFO] [stderr]   Downloaded tokio v1.43.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f40a1693db7e2937c63ea25e2f670dd1a79838351e09fdb34c96300fb9a2a961
[INFO] running `Command { std: "docker" "start" "-a" "f40a1693db7e2937c63ea25e2f670dd1a79838351e09fdb34c96300fb9a2a961", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f40a1693db7e2937c63ea25e2f670dd1a79838351e09fdb34c96300fb9a2a961", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f40a1693db7e2937c63ea25e2f670dd1a79838351e09fdb34c96300fb9a2a961", kill_on_drop: false }`
[INFO] [stdout] f40a1693db7e2937c63ea25e2f670dd1a79838351e09fdb34c96300fb9a2a961
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 634cf6fddae5c8f8d3c3ab5cf78c191af0c315e1aee47ba68fde1dda2a80d1fe
[INFO] running `Command { std: "docker" "start" "-a" "634cf6fddae5c8f8d3c3ab5cf78c191af0c315e1aee47ba68fde1dda2a80d1fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling rusty-dtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | /     match secret {
[INFO] [stdout] 292 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 293 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 294 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 302 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 303 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 321 | /     match secret {
[INFO] [stdout] 322 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 323 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 324 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 331 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 332 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 333 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:357:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | /     match secret {
[INFO] [stdout] 345 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 346 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 347 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 355 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 356 | |     };
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 357 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 424 | /         match self {
[INFO] [stdout] 425 | |             #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 426 | |             CipherDependentCryptoState::Aes128GcmSha256 {
[INFO] [stdout] 427 | |                 transcript_hash: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 432 | |             CipherDependentCryptoState::None => panic!(),
[INFO] [stdout] 433 | |         }
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 434 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |       let valid = match psk.hash_function {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 615 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 616 | |         HashFunction::Sha256 => {
[INFO] [stdout] 617 | |             received_binder == calculate_binder_value::<Sha256>(psk, transcript_hash)?.as_slice()
[INFO] [stdout] 618 | |         }
[INFO] [stdout] 619 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 620 |       Ok(valid)
[INFO] [stdout]     |       ^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/crypto.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 630 |       let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 631 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 632 | |         HashFunction::Sha256 => &calculate_binder_value::<Sha256>(psk, transcript_hash)?,
[INFO] [stdout] 633 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 634 | /     Parser::new_mut_slice(buffer, binder)?
[INFO] [stdout] 635 | |         .write_len_u8()
[INFO] [stdout] 636 | |         .write_slice()
[INFO] [stdout] 637 | |         .end();
[INFO] [stdout]     | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partial_client_hello`
[INFO] [stdout]   --> src/crypto.rs:53:28
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `plaintext`
[INFO] [stdout]    --> src/crypto.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     plaintext: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ciphertext`
[INFO] [stdout]    --> src/crypto.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     ciphertext: &mut [u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `psk`
[INFO] [stdout]    --> src/crypto.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let psk = if let Some(psk) = psk {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_psk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]    --> src/crypto.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         hashes: CryptoInformation,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ikm`
[INFO] [stdout]    --> src/crypto.rs:423:46
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_ikm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `label`
[INFO] [stdout]    --> src/crypto.rs:437:41
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub fn derive_traffic_secret(&self, label: &str) -> Result<TrafficSecret, DtlsError> {
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 480 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 481 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:459:9
[INFO] [stdout]     |
[INFO] [stdout] 459 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 509 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid`
[INFO] [stdout]    --> src/crypto.rs:614:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let valid = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binder`
[INFO] [stdout]    --> src/crypto.rs:630:9
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parsing.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 393 |         for psk in psks.iter().filter(|p| p.hash_function == hash_fn) {
[INFO] [stdout]     |                    ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:392:23
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcript_hash`
[INFO] [stdout]    --> src/parsing.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash_fn`
[INFO] [stdout]    --> src/parsing.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable definition
[INFO] [stdout]    --> src/parsing.rs:899:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                --------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 899 |     let mut selected_psk_index = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ unreachable definition
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:898:32
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn`
[INFO] [stdout]    --> src/parsing.rs:898:9
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_hello_start`
[INFO] [stdout]    --> src/parsing.rs:890:5
[INFO] [stdout]     |
[INFO] [stdout] 890 |     client_hello_start: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 890 |     _client_hello_start: usize,
[INFO] [stdout]     |     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `CIPHERTEXT_HEADER_LEN`
[INFO] [stdout]     |
[INFO] [stdout] 890 -     client_hello_start: usize,
[INFO] [stdout] 890 +     record_parsing::CIPHERTEXT_HEADER_LEN: usize,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parsing.rs:893:9
[INFO] [stdout]     |
[INFO] [stdout] 893 |     let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_nonce` is never used
[INFO] [stdout]    --> src/crypto.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn generate_nonce(record_seq_num: &u64, iv: &[u8], nonce: &mut [u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xor_seq_num_aes128` is never used
[INFO] [stdout]    --> src/crypto.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn xor_seq_num_aes128(sn: &[u8], record_seq_num: &mut [u8], cipher_text: &[u8; 16]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HkdfExt` is never used
[INFO] [stdout]    --> src/crypto.rs:514:7
[INFO] [stdout]     |
[INFO] [stdout] 514 | trait HkdfExt {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hkdf_expand_label` is never used
[INFO] [stdout]    --> src/crypto.rs:528:4
[INFO] [stdout]     |
[INFO] [stdout] 528 | fn hkdf_expand_label(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_hello_retry_transcript_hash` is never used
[INFO] [stdout]    --> src/crypto.rs:554:4
[INFO] [stdout]     |
[INFO] [stdout] 554 | fn calculate_hello_retry_transcript_hash<H: Digest + Update>(client_hello_1_hash: &[u8]) -> H {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:571:4
[INFO] [stdout]     |
[INFO] [stdout] 571 | fn encode_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:580:4
[INFO] [stdout]     |
[INFO] [stdout] 580 | fn check_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_new_hkdf_state` is never used
[INFO] [stdout]    --> src/crypto.rs:590:4
[INFO] [stdout]     |
[INFO] [stdout] 590 | fn extract_new_hkdf_state<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_binder_value` is never used
[INFO] [stdout]    --> src/crypto.rs:641:4
[INFO] [stdout]     |
[INFO] [stdout] 641 | fn calculate_binder_value<H: Clone + OutputSizeUser + FixedOutput + Digest + BlockSizeUser>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_hash` is never used
[INFO] [stdout]    --> src/crypto.rs:657:4
[INFO] [stdout]     |
[INFO] [stdout] 657 | fn empty_hash<D: Digest + OutputSizeUser>() -> GenericArray<u8, <D as OutputSizeUser>::OutputSize> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:663:8
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub fn calculate_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt_in_place` is never used
[INFO] [stdout]    --> src/crypto.rs:677:4
[INFO] [stdout]     |
[INFO] [stdout] 677 | fn encrypt_in_place<A: KeyInit + AeadInPlace>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_in_place` is never used
[INFO] [stdout]    --> src/crypto.rs:693:4
[INFO] [stdout]     |
[INFO] [stdout] 693 | fn decrypt_in_place<A: KeyInit + AeadInPlace>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derive_traffic_secret` is never used
[INFO] [stdout]    --> src/crypto.rs:711:4
[INFO] [stdout]     |
[INFO] [stdout] 711 | fn derive_traffic_secret<
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.24s
[INFO] running `Command { std: "docker" "inspect" "634cf6fddae5c8f8d3c3ab5cf78c191af0c315e1aee47ba68fde1dda2a80d1fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "634cf6fddae5c8f8d3c3ab5cf78c191af0c315e1aee47ba68fde1dda2a80d1fe", kill_on_drop: false }`
[INFO] [stdout] 634cf6fddae5c8f8d3c3ab5cf78c191af0c315e1aee47ba68fde1dda2a80d1fe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f16dbdf4341e0da2e110549f6529842a75cbc4967a5ddbd33df66a773c1eb9a
[INFO] running `Command { std: "docker" "start" "-a" "2f16dbdf4341e0da2e110549f6529842a75cbc4967a5ddbd33df66a773c1eb9a", kill_on_drop: false }`
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling value-bag v1.10.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]    Compiling futures-lite v2.6.0
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling fastrand v1.9.0
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling embedded-io v0.6.1
[INFO] [stderr]    Compiling waker-fn v1.2.0
[INFO] [stderr]    Compiling nb v1.1.0
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling async-lock v2.8.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.3
[INFO] [stderr]    Compiling embedded-nal v0.9.0
[INFO] [stderr]    Compiling socket2 v0.4.10
[INFO] [stderr]    Compiling socket2 v0.5.8
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling async-lock v3.4.0
[INFO] [stderr]    Compiling async-channel v2.3.1
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling embedded-nal-async v0.8.0
[INFO] [stderr]    Compiling nix v0.27.1
[INFO] [stderr]    Compiling rusty-dtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling dns-lookup v2.0.4
[INFO] [stderr]    Compiling simple_logger v4.3.3
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | /     match secret {
[INFO] [stdout] 292 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 293 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 294 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 302 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 303 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 321 | /     match secret {
[INFO] [stdout] 322 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 323 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 324 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 331 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 332 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 333 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:357:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | /     match secret {
[INFO] [stdout] 345 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 346 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 347 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 355 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 356 | |     };
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 357 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 424 | /         match self {
[INFO] [stdout] 425 | |             #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 426 | |             CipherDependentCryptoState::Aes128GcmSha256 {
[INFO] [stdout] 427 | |                 transcript_hash: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 432 | |             CipherDependentCryptoState::None => panic!(),
[INFO] [stdout] 433 | |         }
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 434 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |       let valid = match psk.hash_function {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 615 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 616 | |         HashFunction::Sha256 => {
[INFO] [stdout] 617 | |             received_binder == calculate_binder_value::<Sha256>(psk, transcript_hash)?.as_slice()
[INFO] [stdout] 618 | |         }
[INFO] [stdout] 619 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 620 |       Ok(valid)
[INFO] [stdout]     |       ^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/crypto.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 630 |       let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 631 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 632 | |         HashFunction::Sha256 => &calculate_binder_value::<Sha256>(psk, transcript_hash)?,
[INFO] [stdout] 633 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 634 | /     Parser::new_mut_slice(buffer, binder)?
[INFO] [stdout] 635 | |         .write_len_u8()
[INFO] [stdout] 636 | |         .write_slice()
[INFO] [stdout] 637 | |         .end();
[INFO] [stdout]     | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.3.1
[INFO] [stdout] warning: unused variable: `partial_client_hello`
[INFO] [stdout]   --> src/crypto.rs:53:28
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `plaintext`
[INFO] [stdout]    --> src/crypto.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     plaintext: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ciphertext`
[INFO] [stdout]    --> src/crypto.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     ciphertext: &mut [u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `psk`
[INFO] [stdout]    --> src/crypto.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let psk = if let Some(psk) = psk {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_psk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]    --> src/crypto.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         hashes: CryptoInformation,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ikm`
[INFO] [stdout]    --> src/crypto.rs:423:46
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_ikm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `label`
[INFO] [stdout]    --> src/crypto.rs:437:41
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub fn derive_traffic_secret(&self, label: &str) -> Result<TrafficSecret, DtlsError> {
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 480 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 481 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:459:9
[INFO] [stdout]     |
[INFO] [stdout] 459 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 509 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid`
[INFO] [stdout]    --> src/crypto.rs:614:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let valid = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binder`
[INFO] [stdout]    --> src/crypto.rs:630:9
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parsing.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 393 |         for psk in psks.iter().filter(|p| p.hash_function == hash_fn) {
[INFO] [stdout]     |                    ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:392:23
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcript_hash`
[INFO] [stdout]    --> src/parsing.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash_fn`
[INFO] [stdout]    --> src/parsing.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable definition
[INFO] [stdout]    --> src/parsing.rs:899:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                --------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 899 |     let mut selected_psk_index = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ unreachable definition
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:898:32
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn`
[INFO] [stdout]    --> src/parsing.rs:898:9
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_hello_start`
[INFO] [stdout]    --> src/parsing.rs:890:5
[INFO] [stdout]     |
[INFO] [stdout] 890 |     client_hello_start: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 890 |     _client_hello_start: usize,
[INFO] [stdout]     |     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `CIPHERTEXT_HEADER_LEN`
[INFO] [stdout]     |
[INFO] [stdout] 890 -     client_hello_start: usize,
[INFO] [stdout] 890 +     record_parsing::CIPHERTEXT_HEADER_LEN: usize,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parsing.rs:893:9
[INFO] [stdout]     |
[INFO] [stdout] 893 |     let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_nonce` is never used
[INFO] [stdout]    --> src/crypto.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn generate_nonce(record_seq_num: &u64, iv: &[u8], nonce: &mut [u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xor_seq_num_aes128` is never used
[INFO] [stdout]    --> src/crypto.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn xor_seq_num_aes128(sn: &[u8], record_seq_num: &mut [u8], cipher_text: &[u8; 16]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HkdfExt` is never used
[INFO] [stdout]    --> src/crypto.rs:514:7
[INFO] [stdout]     |
[INFO] [stdout] 514 | trait HkdfExt {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hkdf_expand_label` is never used
[INFO] [stdout]    --> src/crypto.rs:528:4
[INFO] [stdout]     |
[INFO] [stdout] 528 | fn hkdf_expand_label(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_hello_retry_transcript_hash` is never used
[INFO] [stdout]    --> src/crypto.rs:554:4
[INFO] [stdout]     |
[INFO] [stdout] 554 | fn calculate_hello_retry_transcript_hash<H: Digest + Update>(client_hello_1_hash: &[u8]) -> H {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:571:4
[INFO] [stdout]     |
[INFO] [stdout] 571 | fn encode_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:580:4
[INFO] [stdout]     |
[INFO] [stdout] 580 | fn check_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_new_hkdf_state` is never used
[INFO] [stdout]    --> src/crypto.rs:590:4
[INFO] [stdout]     |
[INFO] [stdout] 590 | fn extract_new_hkdf_state<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_binder_value` is never used
[INFO] [stdout]    --> src/crypto.rs:641:4
[INFO] [stdout]     |
[INFO] [stdout] 641 | fn calculate_binder_value<H: Clone + OutputSizeUser + FixedOutput + Digest + BlockSizeUser>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_hash` is never used
[INFO] [stdout]    --> src/crypto.rs:657:4
[INFO] [stdout]     |
[INFO] [stdout] 657 | fn empty_hash<D: Digest + OutputSizeUser>() -> GenericArray<u8, <D as OutputSizeUser>::OutputSize> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_verify_data` is never used
[INFO] [stdout]    --> src/crypto.rs:663:8
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub fn calculate_verify_data<H: Digest + BlockSizeUser + OutputSizeUser + Clone>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt_in_place` is never used
[INFO] [stdout]    --> src/crypto.rs:677:4
[INFO] [stdout]     |
[INFO] [stdout] 677 | fn encrypt_in_place<A: KeyInit + AeadInPlace>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_in_place` is never used
[INFO] [stdout]    --> src/crypto.rs:693:4
[INFO] [stdout]     |
[INFO] [stdout] 693 | fn decrypt_in_place<A: KeyInit + AeadInPlace>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derive_traffic_secret` is never used
[INFO] [stdout]    --> src/crypto.rs:711:4
[INFO] [stdout]     |
[INFO] [stdout] 711 | fn derive_traffic_secret<
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling async-executor v1.13.1
[INFO] [stderr]    Compiling blocking v1.6.1
[INFO] [stderr]    Compiling num v0.3.1
[INFO] [stderr]    Compiling embedded-time v0.12.1
[INFO] [stderr]    Compiling std-embedded-time v0.1.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tokio v1.43.0
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling polling v3.7.4
[INFO] [stderr]    Compiling async-io v2.4.0
[INFO] [stderr]    Compiling async-global-executor v2.4.1
[INFO] [stderr]    Compiling async-std v1.13.0
[INFO] [stderr]    Compiling std-embedded-nal-async v0.3.0
[INFO] [stdout] warning: unused import: `record_parsing::parse_ciphertext_record`
[INFO] [stdout]    --> src/record_parsing.rs:316:40
[INFO] [stdout]     |
[INFO] [stdout] 316 |     use crate::{crypto::TrafficSecret, record_parsing::parse_ciphertext_record, EpochState};
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Sha256` found for enum `HashFunction` in the current scope
[INFO] [stdout]    --> tests/tests.rs:340:66
[INFO] [stdout]     |
[INFO] [stdout] 340 |     let psks = [Psk::new(&[123], &[1, 2, 3, 4, 5], HashFunction::Sha256)];
[INFO] [stdout]     |                                                                  ^^^^^^ variant or associated item not found in `HashFunction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rusty-dtls` (test "tests") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | /     match secret {
[INFO] [stdout] 292 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 293 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 294 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 302 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 303 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 321 | /     match secret {
[INFO] [stdout] 322 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 323 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 324 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 331 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 332 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 333 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:357:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | /     match secret {
[INFO] [stdout] 345 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 346 | |         TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout] 347 | |             traffic_secret: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 355 | |         TrafficSecret::None => panic!(),
[INFO] [stdout] 356 | |     };
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 357 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 424 | /         match self {
[INFO] [stdout] 425 | |             #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 426 | |             CipherDependentCryptoState::Aes128GcmSha256 {
[INFO] [stdout] 427 | |                 transcript_hash: _,
[INFO] [stdout] ...   |
[INFO] [stdout] 432 | |             CipherDependentCryptoState::None => panic!(),
[INFO] [stdout] 433 | |         }
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 434 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/crypto.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |       let valid = match psk.hash_function {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 615 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 616 | |         HashFunction::Sha256 => {
[INFO] [stdout] 617 | |             received_binder == calculate_binder_value::<Sha256>(psk, transcript_hash)?.as_slice()
[INFO] [stdout] 618 | |         }
[INFO] [stdout] 619 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 620 |       Ok(valid)
[INFO] [stdout]     |       ^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/crypto.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 630 |       let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 631 | |         #[cfg(feature = "aes128gcm_sha256")]
[INFO] [stdout] 632 | |         HashFunction::Sha256 => &calculate_binder_value::<Sha256>(psk, transcript_hash)?,
[INFO] [stdout] 633 | |     };
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 634 | /     Parser::new_mut_slice(buffer, binder)?
[INFO] [stdout] 635 | |         .write_len_u8()
[INFO] [stdout] 636 | |         .write_slice()
[INFO] [stdout] 637 | |         .end();
[INFO] [stdout]     | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Aes128GcmSha256` found for enum `TrafficSecret`
[INFO] [stdout]    --> src/record_parsing.rs:336:49
[INFO] [stdout]     |
[INFO] [stdout] 336 |             read_traffic_secret: TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^ variant not found in `TrafficSecret`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/crypto.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub enum TrafficSecret {
[INFO] [stdout]     | ---------------------- variant `Aes128GcmSha256` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Aes128GcmSha256` found for enum `TrafficSecret`
[INFO] [stdout]    --> src/record_parsing.rs:342:50
[INFO] [stdout]     |
[INFO] [stdout] 342 |             write_traffic_secret: TrafficSecret::Aes128GcmSha256 {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^ variant not found in `TrafficSecret`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/crypto.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub enum TrafficSecret {
[INFO] [stdout]     | ---------------------- variant `Aes128GcmSha256` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partial_client_hello`
[INFO] [stdout]   --> src/crypto.rs:53:28
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `plaintext`
[INFO] [stdout]    --> src/crypto.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     plaintext: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_seq_num`
[INFO] [stdout]    --> src/crypto.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     record_seq_num: &u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `additional_data`
[INFO] [stdout]    --> src/crypto.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     additional_data: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ciphertext`
[INFO] [stdout]    --> src/crypto.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     ciphertext: &mut [u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `psk`
[INFO] [stdout]    --> src/crypto.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let psk = if let Some(psk) = psk {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_psk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]    --> src/crypto.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         hashes: CryptoInformation,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ikm`
[INFO] [stdout]    --> src/crypto.rs:423:46
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_ikm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `label`
[INFO] [stdout]    --> src/crypto.rs:437:41
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub fn derive_traffic_secret(&self, label: &str) -> Result<TrafficSecret, DtlsError> {
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 480 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 481 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:459:9
[INFO] [stdout]     |
[INFO] [stdout] 459 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/crypto.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |             (CipherDependentCryptoState::None, _) => panic!(),
[INFO] [stdout]     |             ------------------------------------- matches all the relevant values
[INFO] [stdout] 509 |             (_, TrafficSecret::None) => panic!(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid`
[INFO] [stdout]    --> src/crypto.rs:614:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let valid = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binder`
[INFO] [stdout]    --> src/crypto.rs:630:9
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let binder: &[u8] = match psk.hash_function {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/crypto.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     buffer: &mut ParseBuffer<'_>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parsing.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 393 |         for psk in psks.iter().filter(|p| p.hash_function == hash_fn) {
[INFO] [stdout]     |                    ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:392:23
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcript_hash`
[INFO] [stdout]    --> src/parsing.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash_fn`
[INFO] [stdout]    --> src/parsing.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let hash_fn = cipher_suite.hash_function();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable definition
[INFO] [stdout]    --> src/parsing.rs:899:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                --------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 899 |     let mut selected_psk_index = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ unreachable definition
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited
[INFO] [stdout]    --> src/parsing.rs:898:32
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn`
[INFO] [stdout]    --> src/parsing.rs:898:9
[INFO] [stdout]     |
[INFO] [stdout] 898 |     let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_hello_start`
[INFO] [stdout]    --> src/parsing.rs:890:5
[INFO] [stdout]     |
[INFO] [stdout] 890 |     client_hello_start: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 890 |     _client_hello_start: usize,
[INFO] [stdout]     |     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `CIPHERTEXT_HEADER_LEN`
[INFO] [stdout]     |
[INFO] [stdout] 890 -     client_hello_start: usize,
[INFO] [stdout] 890 +     record_parsing::CIPHERTEXT_HEADER_LEN: usize,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parsing.rs:893:9
[INFO] [stdout]     |
[INFO] [stdout] 893 |     let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rusty-dtls` (lib test) due to 2 previous errors; 32 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "2f16dbdf4341e0da2e110549f6529842a75cbc4967a5ddbd33df66a773c1eb9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f16dbdf4341e0da2e110549f6529842a75cbc4967a5ddbd33df66a773c1eb9a", kill_on_drop: false }`
[INFO] [stdout] 2f16dbdf4341e0da2e110549f6529842a75cbc4967a5ddbd33df66a773c1eb9a
