[INFO] cloning repository https://github.com/garasubo/microps-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/garasubo/microps-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarasubo%2Fmicrops-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarasubo%2Fmicrops-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 94e36bdc7aa0abd5b749da3dd5007d5cc026d6fc
[INFO] checking garasubo/microps-rust against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarasubo%2Fmicrops-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/garasubo/microps-rust
[INFO] finished tweaking git repo https://github.com/garasubo/microps-rust
[INFO] tweaked toml for git repo https://github.com/garasubo/microps-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/garasubo/microps-rust on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/garasubo/microps-rust 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `test_socket` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-6-tc1/source/target/.../test_socket
[INFO] [stderr]   |                                                  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `test-socket`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/test_socket.rs
[INFO] [stderr] 1 + src/bin/test-socket.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `test_socket_2` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-6-tc1/source/target/.../test_socket_2
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `test-socket-2`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/test_socket_2.rs
[INFO] [stderr] 1 + src/bin/test-socket-2.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `udp_test` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-6-tc1/source/target/.../udp_test
[INFO] [stderr]   |                                                  ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `udp-test`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/udp_test.rs
[INFO] [stderr] 1 + src/bin/udp-test.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `microps-rust` (manifest) generated 3 warnings
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.28.0
[INFO] [stderr]   Downloaded strum_macros v0.28.0
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.6
[INFO] [stderr]   Downloaded jiff-static v0.2.23
[INFO] [stderr]   Downloaded nix v0.31.2
[INFO] [stderr]   Downloaded jiff v0.2.23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a
[INFO] running `Command { std: "docker" "start" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `test_socket` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../test_socket
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `test-socket`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/test_socket.rs
[INFO] [stderr] 1 + src/bin/test-socket.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `test_socket_2` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../test_socket_2
[INFO] [stderr]   |                          ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `test-socket-2`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/test_socket_2.rs
[INFO] [stderr] 1 + src/bin/test-socket-2.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `udp_test` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../udp_test
[INFO] [stderr]   |                          ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `udp-test`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/udp_test.rs
[INFO] [stderr] 1 + src/bin/udp-test.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `microps-rust` (manifest) generated 3 warnings
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking rand_core v0.10.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]     Checking jiff v0.2.23
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking microps-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `cond` is never read
[INFO] [stdout]    --> src/tcp.rs:476:28
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let Some((mut pcb, mut cond, desc)) = self.allocate() else {
[INFO] [stdout]     |                            ^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 539 |             (pcb, cond) = self.get(desc);
[INFO] [stdout]     |                   ---- `cond` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:640:29
[INFO] [stdout]     |
[INFO] [stdout] 640 | ...                   pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:692:25
[INFO] [stdout]     |
[INFO] [stdout] 692 |                         pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cond` is never read
[INFO] [stdout]    --> src/tcp.rs:476:28
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let Some((mut pcb, mut cond, desc)) = self.allocate() else {
[INFO] [stdout]     |                            ^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 539 |             (pcb, cond) = self.get(desc);
[INFO] [stdout]     |                   ---- `cond` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:640:29
[INFO] [stdout]     |
[INFO] [stdout] 640 | ...                   pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:692:25
[INFO] [stdout]     |
[INFO] [stdout] 692 |                         pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stdout]   --> src/net_device.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/net_device.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct NetDevice {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 138 |     index: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct SndVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 245 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct RcvVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:930:5
[INFO] [stdout]     |
[INFO] [stdout] 925 | struct SegInfo {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 930 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stdout]   --> src/net_device.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/net_device.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct NetDevice {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 138 |     index: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct SndVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 245 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct RcvVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:930:5
[INFO] [stdout]     |
[INFO] [stdout] 925 | struct SegInfo {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 930 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cond` is never read
[INFO] [stdout]    --> src/tcp.rs:476:28
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let Some((mut pcb, mut cond, desc)) = self.allocate() else {
[INFO] [stdout]     |                            ^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 539 |             (pcb, cond) = self.get(desc);
[INFO] [stdout]     |                   ---- `cond` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:640:29
[INFO] [stdout]     |
[INFO] [stdout] 640 | ...                   pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:692:25
[INFO] [stdout]     |
[INFO] [stdout] 692 |                         pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IPV6` is never constructed
[INFO] [stdout]  --> src/iface.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum IFaceFamily {
[INFO] [stdout]   |          ----------- variant in this enum
[INFO] [stdout] 7 |     IP,
[INFO] [stdout] 8 |     IPV6,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IFaceFamily` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stdout]   --> src/ip.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const IP_HDR_FLAG_DF: u16 = 0x4000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stdout]   --> src/ip.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IP_HDR_FLAG_RF: u16 = 0x8000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `netmask` is never read
[INFO] [stdout]   --> src/ip.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct IpIFace {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 90 |     pub unicast: u32,
[INFO] [stdout] 91 |     pub netmask: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_select` is never used
[INFO] [stdout]    --> src/ip.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn ip_iface_select(addr: u32) -> Option<Arc<IpIFace>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_SOURCE_QUENCH` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const ICMP_TYPE_SOURCE_QUENCH: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_REDIRECT` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const ICMP_TYPE_REDIRECT: u8 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIME_EXCEEDED` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const ICMP_TYPE_TIME_EXCEEDED: u8 = 11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_PARAM_PROBLEM` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub const ICMP_TYPE_PARAM_PROBLEM: u8 = 12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIMESTAMP` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const ICMP_TYPE_TIMESTAMP: u8 = 13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIMESTAMP_REPLY` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const ICMP_TYPE_TIMESTAMP_REPLY: u8 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_INFO_REQUEST` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub const ICMP_TYPE_INFO_REQUEST: u8 = 15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_INFO_REPLY` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const ICMP_TYPE_INFO_REPLY: u8 = 16;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_NET_UNREACH` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:100:11
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub const ICMP_CODE_NET_UNREACH: u8 = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_HOST_UNREACH` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub const ICMP_CODE_HOST_UNREACH: u8 = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_FRAGMENT_NEEDED` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const ICMP_CODE_FRAGMENT_NEEDED: u8 = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_SOURCE_ROUTE_FAILED` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub const ICMP_CODE_SOURCE_ROUTE_FAILED: u8 = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `close` is never used
[INFO] [stdout]   --> src/net_device.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait NetDeviceOps: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn close(&self) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hlen` and `alen` are never read
[INFO] [stdout]   --> src/net_device.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct NetDeviceInfo {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub hlen: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 43 |     pub alen: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stdout]   --> src/net_device.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_open` is never used
[INFO] [stdout]    --> src/net_device.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl NetDeviceInfo {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn is_open(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetDevice` is never constructed
[INFO] [stdout]    --> src/net_device.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct NetDevice {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_FLAG_UP` is never used
[INFO] [stdout]    --> src/net_device.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub const NET_DEVICE_FLAG_UP: u16 = 0x0001;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_FLAG_P2P` is never used
[INFO] [stdout]    --> src/net_device.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub const NET_DEVICE_FLAG_P2P: u16 = 0x0040;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_TYPE_DUMMY` is never used
[INFO] [stdout]    --> src/net_device.rs:148:11
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub const NET_DEVICE_TYPE_DUMMY: u16 = 0x0000;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `gen_dummy_device` is never used
[INFO] [stdout]    --> src/net_device.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl NetDeviceRegistry {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn gen_dummy_device(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_PROTOCOL_TYPE_IPV6` is never used
[INFO] [stdout]  --> src/protocol.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const NET_PROTOCOL_TYPE_IPV6: u16 = 0x86dd;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct SndVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 245 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct RcvVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `socket`, `bind`, `listen`, `accept`, and `connect` are never used
[INFO] [stdout]    --> src/tcp.rs:727:12
[INFO] [stdout]     |
[INFO] [stdout] 424 | impl TcpPcbManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 727 |     pub fn socket(&self) -> Result<TcpPcbDescriptor, ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 733 |     pub fn bind(&self, desc: TcpPcbDescriptor, local: &IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 761 |     pub fn listen(&self, desc: TcpPcbDescriptor, backlog: usize) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 780 |     pub fn accept(&self, desc: TcpPcbDescriptor) -> Result<(TcpPcbDescriptor, IpEndpoint), ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 822 |     pub fn connect(&self, desc: TcpPcbDescriptor, remote: IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:930:5
[INFO] [stdout]     |
[INFO] [stdout] 925 | struct SegInfo {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 930 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Closing` is never constructed
[INFO] [stdout]    --> src/udp.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | enum UdpPcbState {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 169 |     Closing,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpPcbState` 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: fields `remote` and `data` are never read
[INFO] [stdout]    --> src/udp.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct UdpQueueEntry {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 174 |     pub remote: IpEndpoint,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 175 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpQueueEntry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PcbDescriptor` is never constructed
[INFO] [stdout]    --> src/udp.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct PcbDescriptor(pub usize);
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `open`, `close`, `bind`, `recvfrom`, and `sendto` are never used
[INFO] [stdout]    --> src/udp.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl UdpPcbManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 193 |     pub fn open(&self) -> Result<PcbDescriptor, ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn close(&self, desc: PcbDescriptor) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn bind(&self, desc: &PcbDescriptor, local: IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn recvfrom(&self, desc: &PcbDescriptor) -> Result<UdpQueueEntry, ()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn sendto(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `udp_output` is never used
[INFO] [stdout]    --> src/udp.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn udp_output(src: IpEndpoint, dst: IpEndpoint, data: &[u8]) -> Result<usize, ()> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cond` is never read
[INFO] [stdout]    --> src/tcp.rs:476:28
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let Some((mut pcb, mut cond, desc)) = self.allocate() else {
[INFO] [stdout]     |                            ^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 539 |             (pcb, cond) = self.get(desc);
[INFO] [stdout]     |                   ---- `cond` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:640:29
[INFO] [stdout]     |
[INFO] [stdout] 640 | ...                   pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pcb` is never read
[INFO] [stdout]    --> src/tcp.rs:692:25
[INFO] [stdout]     |
[INFO] [stdout] 692 |                         pcb = cond.wait(pcb).unwrap();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IPV6` is never constructed
[INFO] [stdout]  --> src/iface.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum IFaceFamily {
[INFO] [stdout]   |          ----------- variant in this enum
[INFO] [stdout] 7 |     IP,
[INFO] [stdout] 8 |     IPV6,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IFaceFamily` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stdout]   --> src/ip.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const IP_HDR_FLAG_DF: u16 = 0x4000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stdout]   --> src/ip.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IP_HDR_FLAG_RF: u16 = 0x8000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `netmask` is never read
[INFO] [stdout]   --> src/ip.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct IpIFace {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 90 |     pub unicast: u32,
[INFO] [stdout] 91 |     pub netmask: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_select` is never used
[INFO] [stdout]    --> src/ip.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn ip_iface_select(addr: u32) -> Option<Arc<IpIFace>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_SOURCE_QUENCH` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const ICMP_TYPE_SOURCE_QUENCH: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_REDIRECT` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const ICMP_TYPE_REDIRECT: u8 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIME_EXCEEDED` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const ICMP_TYPE_TIME_EXCEEDED: u8 = 11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_PARAM_PROBLEM` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub const ICMP_TYPE_PARAM_PROBLEM: u8 = 12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIMESTAMP` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const ICMP_TYPE_TIMESTAMP: u8 = 13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_TIMESTAMP_REPLY` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const ICMP_TYPE_TIMESTAMP_REPLY: u8 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_INFO_REQUEST` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub const ICMP_TYPE_INFO_REQUEST: u8 = 15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_TYPE_INFO_REPLY` is never used
[INFO] [stdout]   --> src/ip/icmp.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const ICMP_TYPE_INFO_REPLY: u8 = 16;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_NET_UNREACH` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:100:11
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub const ICMP_CODE_NET_UNREACH: u8 = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_HOST_UNREACH` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub const ICMP_CODE_HOST_UNREACH: u8 = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_FRAGMENT_NEEDED` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const ICMP_CODE_FRAGMENT_NEEDED: u8 = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICMP_CODE_SOURCE_ROUTE_FAILED` is never used
[INFO] [stdout]    --> src/ip/icmp.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub const ICMP_CODE_SOURCE_ROUTE_FAILED: u8 = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `close` is never used
[INFO] [stdout]   --> src/net_device.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait NetDeviceOps: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn close(&self) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hlen` and `alen` are never read
[INFO] [stdout]   --> src/net_device.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct NetDeviceInfo {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub hlen: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 43 |     pub alen: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stdout]   --> src/net_device.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_open` is never used
[INFO] [stdout]    --> src/net_device.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl NetDeviceInfo {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn is_open(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetDevice` is never constructed
[INFO] [stdout]    --> src/net_device.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct NetDevice {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_FLAG_UP` is never used
[INFO] [stdout]    --> src/net_device.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub const NET_DEVICE_FLAG_UP: u16 = 0x0001;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_FLAG_P2P` is never used
[INFO] [stdout]    --> src/net_device.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub const NET_DEVICE_FLAG_P2P: u16 = 0x0040;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_DEVICE_TYPE_DUMMY` is never used
[INFO] [stdout]    --> src/net_device.rs:148:11
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub const NET_DEVICE_TYPE_DUMMY: u16 = 0x0000;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `gen_dummy_device` is never used
[INFO] [stdout]    --> src/net_device.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl NetDeviceRegistry {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn gen_dummy_device(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NET_PROTOCOL_TYPE_IPV6` is never used
[INFO] [stdout]  --> src/protocol.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const NET_PROTOCOL_TYPE_IPV6: u16 = 0x86dd;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct SndVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 245 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct RcvVars {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `socket`, `bind`, `listen`, `accept`, and `connect` are never used
[INFO] [stdout]    --> src/tcp.rs:727:12
[INFO] [stdout]     |
[INFO] [stdout] 424 | impl TcpPcbManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 727 |     pub fn socket(&self) -> Result<TcpPcbDescriptor, ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 733 |     pub fn bind(&self, desc: TcpPcbDescriptor, local: &IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 761 |     pub fn listen(&self, desc: TcpPcbDescriptor, backlog: usize) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 780 |     pub fn accept(&self, desc: TcpPcbDescriptor) -> Result<(TcpPcbDescriptor, IpEndpoint), ()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 822 |     pub fn connect(&self, desc: TcpPcbDescriptor, remote: IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `up` is never read
[INFO] [stdout]    --> src/tcp.rs:930:5
[INFO] [stdout]     |
[INFO] [stdout] 925 | struct SegInfo {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 930 |     up: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_src`, `set_dst`, `set_len`, and `set_sum` are never used
[INFO] [stdout]   --> src/udp.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl UdpHeader {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn set_src(&mut self, src: u16) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn set_dst(&mut self, dst: u16) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn set_len(&mut self, len: u16) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn set_sum(&mut self, sum: u16) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Closing` is never constructed
[INFO] [stdout]    --> src/udp.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | enum UdpPcbState {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 169 |     Closing,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpPcbState` 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: fields `remote` and `data` are never read
[INFO] [stdout]    --> src/udp.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct UdpQueueEntry {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 174 |     pub remote: IpEndpoint,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 175 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpQueueEntry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PcbDescriptor` is never constructed
[INFO] [stdout]    --> src/udp.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct PcbDescriptor(pub usize);
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `open`, `close`, `bind`, `recvfrom`, and `sendto` are never used
[INFO] [stdout]    --> src/udp.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl UdpPcbManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 193 |     pub fn open(&self) -> Result<PcbDescriptor, ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn close(&self, desc: PcbDescriptor) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn bind(&self, desc: &PcbDescriptor, local: IpEndpoint) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn recvfrom(&self, desc: &PcbDescriptor) -> Result<UdpQueueEntry, ()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn sendto(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `udp_output` is never used
[INFO] [stdout]    --> src/udp.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn udp_output(src: IpEndpoint, dst: IpEndpoint, data: &[u8]) -> Result<usize, ()> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.34s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.31.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a", kill_on_drop: false }`
[INFO] [stdout] 171ff13df072423812c97ed1b5fc1df90c8a05558baf4dafc59ef43c1ad2fe0a
