[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] testing garasubo/microps-rust against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[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 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.28.0
[INFO] [stderr]   Downloaded rand v0.10.1
[INFO] [stderr]   Downloaded env_filter v1.0.1
[INFO] [stderr]   Downloaded strum_macros v0.28.0
[INFO] [stderr]   Downloaded chacha20 v0.10.0
[INFO] [stderr]   Downloaded env_logger v0.11.10
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.6
[INFO] [stderr]   Downloaded jiff-static v0.2.23
[INFO] [stderr]   Downloaded portable-atomic v1.13.1
[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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51
[INFO] running `Command { std: "docker" "start" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", 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" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling 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: 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: 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 `release` profile [optimized] target(s) in 35.20s
[INFO] running `Command { std: "docker" "inspect" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[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] [stderr]    Compiling microps-rust v0.1.0 (/opt/rustwide/workdir)
[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: 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] [stderr]     Finished `release` profile [optimized] target(s) in 2.54s
[INFO] running `Command { std: "docker" "inspect" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: value assigned to `cond` is never read
[INFO] [stderr]    --> src/tcp.rs:476:28
[INFO] [stderr]     |
[INFO] [stderr] 476 |         let Some((mut pcb, mut cond, desc)) = self.allocate() else {
[INFO] [stderr]     |                            ^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 539 |             (pcb, cond) = self.get(desc);
[INFO] [stderr]     |                   ---- `cond` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `pcb` is never read
[INFO] [stderr]    --> src/tcp.rs:640:29
[INFO] [stderr]     |
[INFO] [stderr] 640 | ...                   pcb = cond.wait(pcb).unwrap();
[INFO] [stderr]     |                       ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `pcb` is never read
[INFO] [stderr]    --> src/tcp.rs:692:25
[INFO] [stderr]     |
[INFO] [stderr] 692 |                         pcb = cond.wait(pcb).unwrap();
[INFO] [stderr]     |                         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stderr]   --> src/net_device.rs:49:18
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `index` is never read
[INFO] [stderr]    --> src/net_device.rs:138:5
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct NetDevice {
[INFO] [stderr]     |            --------- field in this struct
[INFO] [stderr] 138 |     index: usize,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `up` is never read
[INFO] [stderr]    --> src/tcp.rs:245:5
[INFO] [stderr]     |
[INFO] [stderr] 241 | struct SndVars {
[INFO] [stderr]     |        ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 245 |     up: u16,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `up` is never read
[INFO] [stderr]    --> src/tcp.rs:254:5
[INFO] [stderr]     |
[INFO] [stderr] 251 | struct RcvVars {
[INFO] [stderr]     |        ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 254 |     up: u16,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `up` is never read
[INFO] [stderr]    --> src/tcp.rs:930:5
[INFO] [stderr]     |
[INFO] [stderr] 925 | struct SegInfo {
[INFO] [stderr]     |        ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 930 |     up: u16,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: `microps-rust` (lib) generated 8 warnings
[INFO] [stderr] warning: `microps-rust` (lib test) generated 8 warnings (8 duplicates)
[INFO] [stderr] warning: variant `IPV6` is never constructed
[INFO] [stderr]  --> src/iface.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub enum IFaceFamily {
[INFO] [stderr]   |          ----------- variant in this enum
[INFO] [stderr] 7 |     IP,
[INFO] [stderr] 8 |     IPV6,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `IFaceFamily` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stderr]   --> src/ip.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub const IP_HDR_FLAG_DF: u16 = 0x4000;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stderr]   --> src/ip.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const IP_HDR_FLAG_RF: u16 = 0x8000;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stderr]   --> src/ip.rs:29:11
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `netmask` is never read
[INFO] [stderr]   --> src/ip.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub struct IpIFace {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] 90 |     pub unicast: u32,
[INFO] [stderr] 91 |     pub netmask: u32,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_iface_select` is never used
[INFO] [stderr]    --> src/ip.rs:202:8
[INFO] [stderr]     |
[INFO] [stderr] 202 | pub fn ip_iface_select(addr: u32) -> Option<Arc<IpIFace>> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_SOURCE_QUENCH` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:90:11
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub const ICMP_TYPE_SOURCE_QUENCH: u8 = 4;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_REDIRECT` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:91:11
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub const ICMP_TYPE_REDIRECT: u8 = 5;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_TIME_EXCEEDED` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:93:11
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub const ICMP_TYPE_TIME_EXCEEDED: u8 = 11;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_PARAM_PROBLEM` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:94:11
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub const ICMP_TYPE_PARAM_PROBLEM: u8 = 12;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_TIMESTAMP` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:95:11
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub const ICMP_TYPE_TIMESTAMP: u8 = 13;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_TIMESTAMP_REPLY` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:96:11
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub const ICMP_TYPE_TIMESTAMP_REPLY: u8 = 14;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_INFO_REQUEST` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:97:11
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub const ICMP_TYPE_INFO_REQUEST: u8 = 15;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_TYPE_INFO_REPLY` is never used
[INFO] [stderr]   --> src/ip/icmp.rs:98:11
[INFO] [stderr]    |
[INFO] [stderr] 98 | pub const ICMP_TYPE_INFO_REPLY: u8 = 16;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_CODE_NET_UNREACH` is never used
[INFO] [stderr]    --> src/ip/icmp.rs:100:11
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub const ICMP_CODE_NET_UNREACH: u8 = 0;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_CODE_HOST_UNREACH` is never used
[INFO] [stderr]    --> src/ip/icmp.rs:101:11
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub const ICMP_CODE_HOST_UNREACH: u8 = 1;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_CODE_FRAGMENT_NEEDED` is never used
[INFO] [stderr]    --> src/ip/icmp.rs:104:11
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub const ICMP_CODE_FRAGMENT_NEEDED: u8 = 4;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ICMP_CODE_SOURCE_ROUTE_FAILED` is never used
[INFO] [stderr]    --> src/ip/icmp.rs:105:11
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub const ICMP_CODE_SOURCE_ROUTE_FAILED: u8 = 5;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `close` is never used
[INFO] [stderr]   --> src/net_device.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub trait NetDeviceOps: Send + Sync {
[INFO] [stderr]    |           ------------ method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn close(&self) -> Result<(), ()>;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `hlen` and `alen` are never read
[INFO] [stderr]   --> src/net_device.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub struct NetDeviceInfo {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub hlen: u16,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 43 |     pub alen: u16,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HaveNetDeviceInfo` is never used
[INFO] [stderr]   --> src/net_device.rs:49:18
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub(crate) trait HaveNetDeviceInfo {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_open` is never used
[INFO] [stderr]    --> src/net_device.rs:117:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | impl NetDeviceInfo {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 117 |     fn is_open(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NetDevice` is never constructed
[INFO] [stderr]    --> src/net_device.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct NetDevice {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NET_DEVICE_FLAG_UP` is never used
[INFO] [stderr]    --> src/net_device.rs:142:11
[INFO] [stderr]     |
[INFO] [stderr] 142 | pub const NET_DEVICE_FLAG_UP: u16 = 0x0001;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NET_DEVICE_FLAG_P2P` is never used
[INFO] [stderr]    --> src/net_device.rs:145:11
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub const NET_DEVICE_FLAG_P2P: u16 = 0x0040;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NET_DEVICE_TYPE_DUMMY` is never used
[INFO] [stderr]    --> src/net_device.rs:148:11
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub const NET_DEVICE_TYPE_DUMMY: u16 = 0x0000;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `gen_dummy_device` is never used
[INFO] [stderr]    --> src/net_device.rs:163:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | impl NetDeviceRegistry {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn gen_dummy_device(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NET_PROTOCOL_TYPE_IPV6` is never used
[INFO] [stderr]  --> src/protocol.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const NET_PROTOCOL_TYPE_IPV6: u16 = 0x86dd;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `socket`, `bind`, `listen`, `accept`, and `connect` are never used
[INFO] [stderr]    --> src/tcp.rs:727:12
[INFO] [stderr]     |
[INFO] [stderr] 424 | impl TcpPcbManager {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 727 |     pub fn socket(&self) -> Result<TcpPcbDescriptor, ()> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 733 |     pub fn bind(&self, desc: TcpPcbDescriptor, local: &IpEndpoint) -> Result<(), ()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 761 |     pub fn listen(&self, desc: TcpPcbDescriptor, backlog: usize) -> Result<(), ()> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 780 |     pub fn accept(&self, desc: TcpPcbDescriptor) -> Result<(TcpPcbDescriptor, IpEndpoint), ()> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 822 |     pub fn connect(&self, desc: TcpPcbDescriptor, remote: IpEndpoint) -> Result<(), ()> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Closing` is never constructed
[INFO] [stderr]    --> src/udp.rs:169:5
[INFO] [stderr]     |
[INFO] [stderr] 166 | enum UdpPcbState {
[INFO] [stderr]     |      ----------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 169 |     Closing,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UdpPcbState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `remote` and `data` are never read
[INFO] [stderr]    --> src/udp.rs:174:9
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub struct UdpQueueEntry {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] 174 |     pub remote: IpEndpoint,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 175 |     pub data: Vec<u8>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UdpQueueEntry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PcbDescriptor` is never constructed
[INFO] [stderr]    --> src/udp.rs:185:12
[INFO] [stderr]     |
[INFO] [stderr] 185 | pub struct PcbDescriptor(pub usize);
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `open`, `close`, `bind`, `recvfrom`, and `sendto` are never used
[INFO] [stderr]    --> src/udp.rs:193:12
[INFO] [stderr]     |
[INFO] [stderr] 192 | impl UdpPcbManager {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] 193 |     pub fn open(&self) -> Result<PcbDescriptor, ()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn close(&self, desc: PcbDescriptor) -> Result<(), ()> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn bind(&self, desc: &PcbDescriptor, local: IpEndpoint) -> Result<(), ()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 267 |     pub fn recvfrom(&self, desc: &PcbDescriptor) -> Result<UdpQueueEntry, ()> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 296 |     pub fn sendto(
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `udp_output` is never used
[INFO] [stderr]    --> src/udp.rs:341:4
[INFO] [stderr]     |
[INFO] [stderr] 341 | fn udp_output(src: IpEndpoint, dst: IpEndpoint, data: &[u8]) -> Result<usize, ()> {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `microps-rust` (bin "microps-rust" test) generated 40 warnings (6 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/microps_rust-d2e489c14aafd661)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test ether::tests::ether_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test ether::tests::ether_header_parses_from_misaligned_slice ... ok
[INFO] [stdout] test arp::tests::arp_ether_ip_parses_from_misaligned_slice ... ok
[INFO] [stdout] test ip::icmp::tests::display_echo_reply_uses_reply_name ... ok
[INFO] [stdout] test ip::icmp::tests::display_echo_request_includes_fields ... ok
[INFO] [stdout] test ip::icmp::tests::from_bytes_parses_echo_without_alignment_requirements ... ok
[INFO] [stdout] test ip::tests::ip_header_parses_from_misaligned_slice ... ok
[INFO] [stdout] test ip::icmp::tests::display_destination_unreachable_includes_code ... ok
[INFO] [stdout] test ip::tests::ip_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test udp::tests::udp_checksum_matches_known_ipv4_packet ... ok
[INFO] [stdout] test udp::tests::udp_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test udp::tests::udp_header_writes_to_misaligned_slice ... ok
[INFO] [stdout] test udp::tests::udp_payload_ignores_ethernet_padding_after_udp_length ... ok
[INFO] [stdout] test arp::tests::arp_ether_ip_has_no_alignment_requirement ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/microps_rust-a06b3a76bf4d0982)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test arp::tests::arp_ether_ip_parses_from_misaligned_slice ... ok
[INFO] [stdout] test ether::tests::ether_header_parses_from_misaligned_slice ... ok
[INFO] [stdout] test ether::tests::ether_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test ip::icmp::tests::display_echo_reply_uses_reply_name ... ok
[INFO] [stdout] test ip::tests::ip_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test ip::tests::ip_header_parses_from_misaligned_slice ... ok
[INFO] [stderr]      Running unittests src/bin/tap.rs (/opt/rustwide/target/release/deps/tap-89f1e5ff49565397)
[INFO] [stdout] test arp::tests::arp_ether_ip_has_no_alignment_requirement ... ok
[INFO] [stdout] test udp::tests::udp_header_writes_to_misaligned_slice ... ok
[INFO] [stdout] test udp::tests::udp_checksum_matches_known_ipv4_packet ... ok
[INFO] [stdout] test udp::tests::udp_header_has_no_alignment_requirement ... ok
[INFO] [stdout] test udp::tests::udp_payload_ignores_ethernet_padding_after_udp_length ... ok
[INFO] [stdout] test ip::icmp::tests::display_destination_unreachable_includes_code ... ok
[INFO] [stdout] test ip::icmp::tests::display_echo_request_includes_fields ... ok
[INFO] [stdout] test ip::icmp::tests::from_bytes_parses_echo_without_alignment_requirements ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/test_socket.rs (/opt/rustwide/target/release/deps/test_socket-661a56a3e766fe7b)
[INFO] [stderr]      Running unittests src/bin/test_socket_2.rs (/opt/rustwide/target/release/deps/test_socket_2-d7442c6f561f35ce)
[INFO] [stderr]      Running unittests src/bin/udp_test.rs (/opt/rustwide/target/release/deps/udp_test-848cc42fcc1c124d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests microps_rust
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51", kill_on_drop: false }`
[INFO] [stdout] 6e88963b6de8cce09f85d2f1c3b035a707a6f3e015aaa3e11941f0927f72ef51
