[INFO] cloning repository https://github.com/ashishmax31/user_net
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ashishmax31/user_net" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashishmax31%2Fuser_net", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashishmax31%2Fuser_net'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 38d8f227748a2f00cdbddef84a3d343440d1f89c
[INFO] checking ashishmax31/user_net against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashishmax31%2Fuser_net" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ashishmax31/user_net
[INFO] finished tweaking git repo https://github.com/ashishmax31/user_net
[INFO] tweaked toml for git repo https://github.com/ashishmax31/user_net written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ashishmax31/user_net on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ashishmax31/user_net 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ifstructs v0.1.1
[INFO] [stderr]   Downloaded ioctl-macros v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2653f9b6d4855d663e7c72b6e9c4a0027c59d9e83e5b7986aba4ad0bef9771e6
[INFO] running `Command { std: "docker" "start" "-a" "2653f9b6d4855d663e7c72b6e9c4a0027c59d9e83e5b7986aba4ad0bef9771e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2653f9b6d4855d663e7c72b6e9c4a0027c59d9e83e5b7986aba4ad0bef9771e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2653f9b6d4855d663e7c72b6e9c4a0027c59d9e83e5b7986aba4ad0bef9771e6", kill_on_drop: false }`
[INFO] [stdout] 2653f9b6d4855d663e7c72b6e9c4a0027c59d9e83e5b7986aba4ad0bef9771e6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eec990542d2788c98b26d79e71947600ae24cda01a984d1ad0c40f697f260eee
[INFO] running `Command { std: "docker" "start" "-a" "eec990542d2788c98b26d79e71947600ae24cda01a984d1ad0c40f697f260eee", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.76
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking hex v0.4.2
[INFO] [stderr]    Compiling ioctl-macros v0.1.0
[INFO] [stderr]     Checking ifstructs v0.1.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking user_net v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `time`
[INFO] [stdout]   --> src/ethernet/ethernet.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::{thread, time};
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ethernet::EtherType`
[INFO] [stdout]  --> src/ethernet/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use ethernet::EtherType;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time`
[INFO] [stdout]   --> src/ethernet/ethernet.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::{thread, time};
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ethernet::EtherType`
[INFO] [stdout]  --> src/ethernet/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use ethernet::EtherType;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eth`
[INFO] [stdout]    --> src/ipv4/ipv4.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         eth: &ethernet::Ethernet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_eth`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_3_writer`
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:45:59
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn process_packet(frame: ethernet::EthernetFrame, layer_3_writer: &IPstackWriter) {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_3_writer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |             Some(mut datagram) => {
[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 variable: `eth`
[INFO] [stdout]    --> src/ipv4/ipv4.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         eth: &ethernet::Ethernet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_eth`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_3_writer`
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:45:59
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn process_packet(frame: ethernet::EthernetFrame, layer_3_writer: &IPstackWriter) {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_3_writer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |             Some(mut datagram) => {
[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: associated items `operation`, `handle_packet`, and `build_request` are never used
[INFO] [stdout]    --> src/arp/arp.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl ARP {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn operation(&self) -> ARPKind {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn handle_packet(data: Vec<u8>, eth_addr: [u8; 6]) -> ARP {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn build_request(data: Vec<u8>) -> ARP {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hrd`, `pro`, `op`, and `tha` are never used
[INFO] [stdout]    --> src/arp/arp.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl ARP {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 175 |     pub fn hrd(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn pro(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn op(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn tha(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spa` is never used
[INFO] [stdout]   --> src/ethernet/ethernet.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait LinkLayerWritable {
[INFO] [stdout]    |           ----------------- method in this trait
[INFO] [stdout] 29 |     fn spa(&self) -> ProtocolAddr;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/ethernet/ethernet.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl EtherType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn value(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Reading` is never constructed
[INFO] [stdout]   --> src/ethernet/ethernet.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 68 |     Ready,
[INFO] [stdout] 69 |     Reading,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_response_frame` and `src` are never used
[INFO] [stdout]    --> src/ethernet/ethernet.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl EthernetFrame {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn build_response_frame<T>(&self, payload: T) -> Self
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn src(&self) -> HwAddr {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_socket_state` is never used
[INFO] [stdout]    --> src/ethernet/ethernet.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Ethernet {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn set_socket_state(&mut self, to_state: State) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ECHO_REQ` is never used
[INFO] [stdout]   --> src/ipv4/icmp/icmp.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const ECHO_REQ: u8 = 8u8;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ipv4/ipv4.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct IpHeader {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 41 |     version: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     ihl: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 43 |     ecn: u8,
[INFO] [stdout] 44 |     t_len: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 45 |     id: u16,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 46 |     flags: u8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 47 |     frag_offset: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 48 |     ttl: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 49 |     pub proto: Protocol,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 50 |     chksm: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `src_str`, `src_from_bytes`, `dst_from_bytes`, and `payload_from_bytes` are never used
[INFO] [stdout]    --> src/ipv4/ipv4.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl IPv4 {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn src_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn src_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn dst_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn payload_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dst_port`, `length`, `chksm`, and `set_chksm` are never used
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl UdpHeader {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn dst_port(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn length(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn chksm(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_chksm(&mut self, value: u16) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr_identifier` is never read
[INFO] [stdout]   --> src/ipv4/udp/udp_socket.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct UdpSocket {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 27 |     addr: std::net::SocketAddr,
[INFO] [stdout] 28 |     addr_identifier: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `htons` is never used
[INFO] [stdout]   --> src/net_util.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn htons(input: &[u8]) -> u16 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/ethernet/ethernet.rs:288:28
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     panic!(err.desc());
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     panic!("{}", err.desc());
[INFO] [stdout]     |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ipv4/udp/udp_socket.rs:275:44
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let ip_stack_writer = unsafe { LAYER3_WRITER.clone().unwrap() };
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `operation`, `handle_packet`, and `build_request` are never used
[INFO] [stdout]    --> src/arp/arp.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl ARP {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn operation(&self) -> ARPKind {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn handle_packet(data: Vec<u8>, eth_addr: [u8; 6]) -> ARP {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn build_request(data: Vec<u8>) -> ARP {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hrd`, `pro`, `op`, and `tha` are never used
[INFO] [stdout]    --> src/arp/arp.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl ARP {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 175 |     pub fn hrd(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn pro(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn op(&self) -> [u8; 2] {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn tha(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spa` is never used
[INFO] [stdout]   --> src/ethernet/ethernet.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait LinkLayerWritable {
[INFO] [stdout]    |           ----------------- method in this trait
[INFO] [stdout] 29 |     fn spa(&self) -> ProtocolAddr;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/ethernet/ethernet.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl EtherType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn value(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Reading` is never constructed
[INFO] [stdout]   --> src/ethernet/ethernet.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 68 |     Ready,
[INFO] [stdout] 69 |     Reading,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_response_frame` and `src` are never used
[INFO] [stdout]    --> src/ethernet/ethernet.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl EthernetFrame {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn build_response_frame<T>(&self, payload: T) -> Self
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn src(&self) -> HwAddr {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_socket_state` is never used
[INFO] [stdout]    --> src/ethernet/ethernet.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Ethernet {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn set_socket_state(&mut self, to_state: State) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ECHO_REQ` is never used
[INFO] [stdout]   --> src/ipv4/icmp/icmp.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const ECHO_REQ: u8 = 8u8;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ipv4/ipv4.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct IpHeader {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 41 |     version: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     ihl: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 43 |     ecn: u8,
[INFO] [stdout] 44 |     t_len: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 45 |     id: u16,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 46 |     flags: u8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 47 |     frag_offset: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 48 |     ttl: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 49 |     pub proto: Protocol,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 50 |     chksm: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `src_str`, `src_from_bytes`, `dst_from_bytes`, and `payload_from_bytes` are never used
[INFO] [stdout]    --> src/ipv4/ipv4.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl IPv4 {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn src_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn src_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn dst_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn payload_from_bytes(ip_bytes: &[u8]) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dst_port`, `length`, `chksm`, and `set_chksm` are never used
[INFO] [stdout]   --> src/ipv4/udp/udp.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl UdpHeader {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn dst_port(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn length(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn chksm(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_chksm(&mut self, value: u16) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr_identifier` is never read
[INFO] [stdout]   --> src/ipv4/udp/udp_socket.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct UdpSocket {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 27 |     addr: std::net::SocketAddr,
[INFO] [stdout] 28 |     addr_identifier: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/ethernet/ethernet.rs:288:28
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     panic!(err.desc());
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     panic!("{}", err.desc());
[INFO] [stdout]     |                            +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ipv4/udp/udp_socket.rs:275:44
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let ip_stack_writer = unsafe { LAYER3_WRITER.clone().unwrap() };
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.24s
[INFO] running `Command { std: "docker" "inspect" "eec990542d2788c98b26d79e71947600ae24cda01a984d1ad0c40f697f260eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eec990542d2788c98b26d79e71947600ae24cda01a984d1ad0c40f697f260eee", kill_on_drop: false }`
[INFO] [stdout] eec990542d2788c98b26d79e71947600ae24cda01a984d1ad0c40f697f260eee
