[INFO] cloning repository https://github.com/shu-kitamura/protocol-stack-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shu-kitamura/protocol-stack-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshu-kitamura%2Fprotocol-stack-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshu-kitamura%2Fprotocol-stack-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a9c12fbdc7ff7f53e5cd4279b1494e9bcc7cf979
[INFO] testing shu-kitamura/protocol-stack-rust against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshu-kitamura%2Fprotocol-stack-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shu-kitamura/protocol-stack-rust
[INFO] finished tweaking git repo https://github.com/shu-kitamura/protocol-stack-rust
[INFO] tweaked toml for git repo https://github.com/shu-kitamura/protocol-stack-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shu-kitamura/protocol-stack-rust on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/shu-kitamura/protocol-stack-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 090ba667ed5f743c26190065974fdb4adcde8efe14d66fc6a2f44ac7d0cb4f6d
[INFO] running `Command { std: "docker" "start" "-a" "090ba667ed5f743c26190065974fdb4adcde8efe14d66fc6a2f44ac7d0cb4f6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "090ba667ed5f743c26190065974fdb4adcde8efe14d66fc6a2f44ac7d0cb4f6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "090ba667ed5f743c26190065974fdb4adcde8efe14d66fc6a2f44ac7d0cb4f6d", kill_on_drop: false }`
[INFO] [stdout] 090ba667ed5f743c26190065974fdb4adcde8efe14d66fc6a2f44ac7d0cb4f6d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cac59ac72788b4ed14a67f9ec5b2186d7942268034cde878b106665c4ca8aa78
[INFO] running `Command { std: "docker" "start" "-a" "cac59ac72788b4ed14a67f9ec5b2186d7942268034cde878b106665c4ca8aa78", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling jiff v0.2.17
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling rps v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/platform/intr.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProtocolStack`
[INFO] [stdout]  --> src/ip.rs:1:75
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::net::{NetDevice, NetIfaceFamily, NetProtocol, NetProtocolType, ProtocolStack, Result};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flags`
[INFO] [stdout]  --> src/main.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use platform::intr::{InterruptManager, irq, flags};
[INFO] [stdout]   |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/driver/loopback.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn output(&self, data: &[u8]) -> crate::net::Result<()> {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InitializationFailed`, `LockError`, `AlreadyInitialized`, and `NotInitialized` are never constructed
[INFO] [stdout]   --> src/platform/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum PlatformError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 17 |     InitializationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     LockError,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     AlreadyInitialized,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     NotInitialized,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlatformError` has derived impls for the traits `Clone` and `Debug`, 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: struct `Lock` is never constructed
[INFO] [stdout]   --> src/platform/mod.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct Lock<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `try_acquire` are never used
[INFO] [stdout]   --> src/platform/mod.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<T> Lock<T> {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub const fn new(value: T) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn try_acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random16` is never used
[INFO] [stdout]    --> src/platform/mod.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn random16() -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllocationFailed` and `IrqNotFound` are never constructed
[INFO] [stdout]   --> src/platform/intr.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum IntrError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     AllocationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     IrqNotFound(u32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntrError` 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: methods `is_running` and `registered_count` are never used
[INFO] [stdout]    --> src/platform/intr.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl InterruptManager {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn registered_count(&self) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IRQ_SOFT` is never used
[INFO] [stdout]   --> src/platform/intr.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const IRQ_SOFT: u32 = 10;  // SIGUSR1
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IRQ_BASE` is never used
[INFO] [stdout]   --> src/platform/intr.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const IRQ_BASE: u32 = 34;  // SIGRTMIN+1
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SchedError` is never used
[INFO] [stdout]   --> src/platform/sched.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum SchedError {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/platform/sched.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub type Result<T> = std::result::Result<T, SchedError>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedTaskInner` is never constructed
[INFO] [stdout]   --> src/platform/sched.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct SchedTaskInner {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedTask` is never constructed
[INFO] [stdout]   --> src/platform/sched.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct SchedTask {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `can_destroy`, `sleep`, `sleep_with_lock`, `wakeup`, and `interrupt` are never used
[INFO] [stdout]    --> src/platform/sched.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl SchedTask {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn can_destroy(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn sleep(&self, timeout: Option<Duration>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn sleep_with_lock<T>(&self, external_lock: &Mutex<T>, timeout: Option<Duration>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn wakeup(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn interrupt(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskList` is never constructed
[INFO] [stdout]    --> src/platform/sched.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | struct TaskList {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `remove`, and `interrupt_all` are never used
[INFO] [stdout]    --> src/platform/sched.rs:270:14
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl TaskList {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 270 |     const fn new() -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn add(&self, task: *const SchedTask) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn remove(&self, task: *const SchedTask) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn interrupt_all(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TASKS` is never used
[INFO] [stdout]    --> src/platform/sched.rs:311:8
[INFO] [stdout]     |
[INFO] [stdout] 311 | static TASKS: TaskList = TaskList::new();
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sched_irq_handler` is never used
[INFO] [stdout]    --> src/platform/sched.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn sched_irq_handler(_irq: u32, _arg: Option<&()>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sched_init` is never used
[INFO] [stdout]    --> src/platform/sched.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn sched_init() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sched_run` is never used
[INFO] [stdout]    --> src/platform/sched.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn sched_run() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sched_shutdown` is never used
[INFO] [stdout]    --> src/platform/sched.rs:345:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub fn sched_shutdown() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllocationFailed` and `CreateFailed` are never constructed
[INFO] [stdout]   --> src/platform/timer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TimerError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 19 |     AllocationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     CreateFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimerError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_tick_interval`, `is_running`, `timer_count`, and `clear` are never used
[INFO] [stdout]    --> src/platform/timer.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl TimerManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn with_tick_interval(tick_interval: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn timer_count(&self) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn clear(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_TIMER` is never used
[INFO] [stdout]    --> src/platform/timer.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | static GLOBAL_TIMER: OnceLock<Mutex<TimerManager>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_init` is never used
[INFO] [stdout]    --> src/platform/timer.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn timer_init() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_register` is never used
[INFO] [stdout]    --> src/platform/timer.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn timer_register<F>(interval: Duration, handler: F) -> Result<()>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_run` is never used
[INFO] [stdout]    --> src/platform/timer.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn timer_run() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_shutdown` is never used
[INFO] [stdout]    --> src/platform/timer.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn timer_shutdown() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtocolStack` is never constructed
[INFO] [stdout]  --> src/net.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ProtocolStack {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_protocol`, and `handle_input` are never used
[INFO] [stdout]   --> src/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ProtocolStack {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn register_protocol(&mut self, protocol: NetProtocol) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn handle_input(&self, protocol_type: NetProtocolType, data: &[u8]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetProtocolType` is never used
[INFO] [stdout]   --> src/net.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum NetProtocolType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetProtocol` is never constructed
[INFO] [stdout]   --> src/net.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct NetProtocol {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/net.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl NetProtocol {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 65 |     pub fn new(protocol_type: NetProtocolType, handler: fn(&[u8]) -> Result<()>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Dummy` and `Loopback` are never constructed
[INFO] [stdout]   --> src/net.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum NetDeviceType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 74 |     Dummy  = 0x0000,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 75 |     Loopback = 0x0001,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Loopback`, `Broadcast`, `P2P`, and `NeedARP` are never constructed
[INFO] [stdout]   --> src/net.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum NetDeviceFlag {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 80 |     Up          = 0x0001,
[INFO] [stdout] 81 |     Loopback    = 0x0010,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 82 |     Broadcast   = 0x0020,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 83 |     P2P         = 0x0040,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 84 |     NeedARP     = 0x0100,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `IP` and `IPv6` are never constructed
[INFO] [stdout]   --> src/net.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum NetIfaceFamily {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 90 |     IP = 1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 91 |     IPv6 = 2,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetIfaceFamily` 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: trait `NetIface` is never used
[INFO] [stdout]   --> src/net.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub trait NetIface {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `init` and `output` are never used
[INFO] [stdout]    --> src/net.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub trait NetDeviceOps {
[INFO] [stdout]     |           ------------ methods in this trait
[INFO] [stdout] 106 |     // Placeholder for network device operations
[INFO] [stdout] 107 |     fn init(&self) -> Result<()>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 108 |     
[INFO] [stdout] 109 |     fn output(&self, data: &[u8]) -> Result<()>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct NetDevice {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 132 |     type_id: NetDeviceType,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 133 |     mtu: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 134 |     flags: u8,
[INFO] [stdout] 135 |     hlen: u8,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 136 |     alen: u8,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 137 |     addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 138 |     broadcast_addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 139 |     net_device_ops: Option<Box<dyn NetDeviceOps>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 140 |     void_ptr: Option<*mut ()>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 141 |     /// インタフェースのインデックスリスト (ファミリごとに1つ)
[INFO] [stdout] 142 |     iface_indices: Vec<(NetIfaceFamily, usize)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `index`, `add_iface`, and `get_iface_index` are never used
[INFO] [stdout]    --> src/net.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl NetDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn name(&self) -> &str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn index(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn add_iface(&mut self, family: NetIfaceFamily, iface_index: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn get_iface_index(&self, family: NetIfaceFamily) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/driver/loopback.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Result<T> = std::result::Result<T, String>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoopbackDeviceOps` is never constructed
[INFO] [stdout]  --> src/driver/loopback.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct LoopbackDeviceOps {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_VERSION_IPV4` is never used
[INFO] [stdout]  --> src/ip.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const IP_VERSION_IPV4: u8 = 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MIN` is never used
[INFO] [stdout]   --> src/ip.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const IP_HDR_SIZE_MIN: usize = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_TOTAL_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const IP_TOTAL_SIZE_MAX: usize = u16::MAX as usize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_PAYLOAD_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const IP_PAYLOAD_SIZE_MAX: usize = IP_TOTAL_SIZE_MAX - IP_HDR_SIZE_MIN;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_LEN` is never used
[INFO] [stdout]   --> src/ip.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const IP_ADDR_LEN: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_MF` is never used
[INFO] [stdout]   --> src/ip.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const IP_HDR_FLAG_MF: u16 = 0x2000; // more fragments flag
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stdout]   --> src/ip.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const IP_HDR_FLAG_DF: u16 = 0x4000; // don't fragment flag
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stdout]   --> src/ip.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const IP_HDR_FLAG_RF: u16 = 0x8000; // reserved
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_OFFSET_MASK` is never used
[INFO] [stdout]   --> src/ip.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IP_HDR_OFFSET_MASK: u16 = 0x1fff;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_ANY` is never used
[INFO] [stdout]   --> src/ip.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const IP_ADDR_ANY: u32 = 0x00000000;       // 0.0.0.0
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_BROADCAST` is never used
[INFO] [stdout]   --> src/ip.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const IP_ADDR_BROADCAST: u32 = 0xffffffff; // 255.255.255.255
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpIface` is never constructed
[INFO] [stdout]   --> src/ip.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct IpIface {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `alloc`, `dev_index`, and `set_dev_index` are never used
[INFO] [stdout]   --> src/ip.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl IpIface {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 46 |     /// 新しいIPインタフェースを作成
[INFO] [stdout] 47 |     pub fn new(unicast: Ipv4Addr, netmask: Ipv4Addr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn alloc(unicast: &str, netmask: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn dev_index(&self) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn set_dev_index(&mut self, index: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IP_IFACES` is never used
[INFO] [stdout]   --> src/ip.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | static IP_IFACES: Mutex<Vec<IpIface>> = Mutex::new(Vec::new());
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_register` is never used
[INFO] [stdout]   --> src/ip.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn ip_iface_register(dev: &mut NetDevice, mut iface: IpIface) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_select` is never used
[INFO] [stdout]    --> src/ip.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn ip_iface_select(addr: Ipv4Addr) -> Option<IpIface> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_get` is never used
[INFO] [stdout]    --> src/ip.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn ip_iface_get(dev: &NetDevice) -> Option<IpIface> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cksum16` is never used
[INFO] [stdout]    --> src/ip.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn cksum16(data: &[u8], init: u32) -> u16 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpHdr` is never constructed
[INFO] [stdout]    --> src/ip.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct IpHdr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ip.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl IpHdr {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 190 |     /// バージョンを取得 (上位4ビット)
[INFO] [stdout] 191 |     pub fn version(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn ihl(&self) -> u8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn hdr_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn set_vhl(version: u8, ihl: u8) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn flags(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn fragment_offset(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn total_len(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn identification(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn src_addr(&self) -> Ipv4Addr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn dst_addr(&self) -> Ipv4Addr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn from_bytes(data: &[u8]) -> Option<&IpHdr> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_print` is never used
[INFO] [stdout]    --> src/ip.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn ip_print(data: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_handler` is never used
[INFO] [stdout]    --> src/ip.rs:275:4
[INFO] [stdout]     |
[INFO] [stdout] 275 | fn dummy_handler(_data: &[u8]) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_init` is never used
[INFO] [stdout]    --> src/ip.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub fn ip_init(protocols: &mut Vec<NetProtocol>) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_input` is never used
[INFO] [stdout]    --> src/ip.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn ip_input(data: &[u8], dev: &NetDevice) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NetDeviceAddrMaxLen` should have an upper case name
[INFO] [stdout]  --> src/net.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 7 - const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stdout] 7 + const NET_DEVICE_ADDR_MAX_LEN: usize = 16;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.28s
[INFO] running `Command { std: "docker" "inspect" "cac59ac72788b4ed14a67f9ec5b2186d7942268034cde878b106665c4ca8aa78", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cac59ac72788b4ed14a67f9ec5b2186d7942268034cde878b106665c4ca8aa78", kill_on_drop: false }`
[INFO] [stdout] cac59ac72788b4ed14a67f9ec5b2186d7942268034cde878b106665c4ca8aa78
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4f2836fbd08d08ec5055d57998860e5ca0f70b5efa7c9d775daa043dc7508b27
[INFO] running `Command { std: "docker" "start" "-a" "4f2836fbd08d08ec5055d57998860e5ca0f70b5efa7c9d775daa043dc7508b27", kill_on_drop: false }`
[INFO] [stderr]    Compiling rps v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/platform/intr.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProtocolStack`
[INFO] [stdout]  --> src/ip.rs:1:75
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::net::{NetDevice, NetIfaceFamily, NetProtocol, NetProtocolType, ProtocolStack, Result};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flags`
[INFO] [stdout]  --> src/main.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use platform::intr::{InterruptManager, irq, flags};
[INFO] [stdout]   |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/driver/loopback.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn output(&self, data: &[u8]) -> crate::net::Result<()> {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InitializationFailed`, `LockError`, `AlreadyInitialized`, and `NotInitialized` are never constructed
[INFO] [stdout]   --> src/platform/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum PlatformError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 17 |     InitializationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     LockError,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     AlreadyInitialized,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     NotInitialized,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlatformError` has derived impls for the traits `Clone` and `Debug`, 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: struct `Lock` is never constructed
[INFO] [stdout]   --> src/platform/mod.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct Lock<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `try_acquire` are never used
[INFO] [stdout]   --> src/platform/mod.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<T> Lock<T> {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub const fn new(value: T) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn try_acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random16` is never used
[INFO] [stdout]    --> src/platform/mod.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn random16() -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllocationFailed` and `IrqNotFound` are never constructed
[INFO] [stdout]   --> src/platform/intr.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum IntrError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     AllocationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     IrqNotFound(u32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntrError` 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: methods `is_running` and `registered_count` are never used
[INFO] [stdout]    --> src/platform/intr.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl InterruptManager {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn registered_count(&self) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IRQ_BASE` is never used
[INFO] [stdout]   --> src/platform/intr.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const IRQ_BASE: u32 = 34;  // SIGRTMIN+1
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InitFailed` is never constructed
[INFO] [stdout]   --> src/platform/sched.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum SchedError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     InitFailed,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SchedError` 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: method `interrupt` is never used
[INFO] [stdout]    --> src/platform/sched.rs:240:8
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl SchedTask {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn interrupt(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interrupt_all` is never used
[INFO] [stdout]    --> src/platform/sched.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl TaskList {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn interrupt_all(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sched_irq_handler` is never used
[INFO] [stdout]    --> src/platform/sched.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn sched_irq_handler(_irq: u32, _arg: Option<&()>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AllocationFailed` and `CreateFailed` are never constructed
[INFO] [stdout]   --> src/platform/timer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TimerError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 19 |     AllocationFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     CreateFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimerError` 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: static `GLOBAL_TIMER` is never used
[INFO] [stdout]    --> src/platform/timer.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | static GLOBAL_TIMER: OnceLock<Mutex<TimerManager>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_init` is never used
[INFO] [stdout]    --> src/platform/timer.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn timer_init() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_register` is never used
[INFO] [stdout]    --> src/platform/timer.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn timer_register<F>(interval: Duration, handler: F) -> Result<()>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_run` is never used
[INFO] [stdout]    --> src/platform/timer.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn timer_run() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timer_shutdown` is never used
[INFO] [stdout]    --> src/platform/timer.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn timer_shutdown() -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtocolStack` is never constructed
[INFO] [stdout]  --> src/net.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ProtocolStack {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_protocol`, and `handle_input` are never used
[INFO] [stdout]   --> src/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ProtocolStack {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn register_protocol(&mut self, protocol: NetProtocol) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn handle_input(&self, protocol_type: NetProtocolType, data: &[u8]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetProtocolType` is never used
[INFO] [stdout]   --> src/net.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum NetProtocolType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetProtocol` is never constructed
[INFO] [stdout]   --> src/net.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct NetProtocol {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/net.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl NetProtocol {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 65 |     pub fn new(protocol_type: NetProtocolType, handler: fn(&[u8]) -> Result<()>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Dummy` and `Loopback` are never constructed
[INFO] [stdout]   --> src/net.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum NetDeviceType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 74 |     Dummy  = 0x0000,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 75 |     Loopback = 0x0001,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Loopback`, `Broadcast`, `P2P`, and `NeedARP` are never constructed
[INFO] [stdout]   --> src/net.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum NetDeviceFlag {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 80 |     Up          = 0x0001,
[INFO] [stdout] 81 |     Loopback    = 0x0010,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 82 |     Broadcast   = 0x0020,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 83 |     P2P         = 0x0040,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 84 |     NeedARP     = 0x0100,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `IP` and `IPv6` are never constructed
[INFO] [stdout]   --> src/net.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum NetIfaceFamily {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 90 |     IP = 1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 91 |     IPv6 = 2,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetIfaceFamily` 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: trait `NetIface` is never used
[INFO] [stdout]   --> src/net.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub trait NetIface {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `init` and `output` are never used
[INFO] [stdout]    --> src/net.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub trait NetDeviceOps {
[INFO] [stdout]     |           ------------ methods in this trait
[INFO] [stdout] 106 |     // Placeholder for network device operations
[INFO] [stdout] 107 |     fn init(&self) -> Result<()>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 108 |     
[INFO] [stdout] 109 |     fn output(&self, data: &[u8]) -> Result<()>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct NetDevice {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 132 |     type_id: NetDeviceType,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 133 |     mtu: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 134 |     flags: u8,
[INFO] [stdout] 135 |     hlen: u8,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 136 |     alen: u8,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 137 |     addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 138 |     broadcast_addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 139 |     net_device_ops: Option<Box<dyn NetDeviceOps>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 140 |     void_ptr: Option<*mut ()>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 141 |     /// インタフェースのインデックスリスト (ファミリごとに1つ)
[INFO] [stdout] 142 |     iface_indices: Vec<(NetIfaceFamily, usize)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `index`, `add_iface`, and `get_iface_index` are never used
[INFO] [stdout]    --> src/net.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl NetDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn name(&self) -> &str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn index(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn add_iface(&mut self, family: NetIfaceFamily, iface_index: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn get_iface_index(&self, family: NetIfaceFamily) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/driver/loopback.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Result<T> = std::result::Result<T, String>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoopbackDeviceOps` is never constructed
[INFO] [stdout]  --> src/driver/loopback.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct LoopbackDeviceOps {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_VERSION_IPV4` is never used
[INFO] [stdout]  --> src/ip.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const IP_VERSION_IPV4: u8 = 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MIN` is never used
[INFO] [stdout]   --> src/ip.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const IP_HDR_SIZE_MIN: usize = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_TOTAL_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const IP_TOTAL_SIZE_MAX: usize = u16::MAX as usize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_PAYLOAD_SIZE_MAX` is never used
[INFO] [stdout]   --> src/ip.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const IP_PAYLOAD_SIZE_MAX: usize = IP_TOTAL_SIZE_MAX - IP_HDR_SIZE_MIN;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_LEN` is never used
[INFO] [stdout]   --> src/ip.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const IP_ADDR_LEN: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_MF` is never used
[INFO] [stdout]   --> src/ip.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const IP_HDR_FLAG_MF: u16 = 0x2000; // more fragments flag
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stdout]   --> src/ip.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const IP_HDR_FLAG_DF: u16 = 0x4000; // don't fragment flag
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stdout]   --> src/ip.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const IP_HDR_FLAG_RF: u16 = 0x8000; // reserved
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_HDR_OFFSET_MASK` is never used
[INFO] [stdout]   --> src/ip.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IP_HDR_OFFSET_MASK: u16 = 0x1fff;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_ANY` is never used
[INFO] [stdout]   --> src/ip.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const IP_ADDR_ANY: u32 = 0x00000000;       // 0.0.0.0
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IP_ADDR_BROADCAST` is never used
[INFO] [stdout]   --> src/ip.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const IP_ADDR_BROADCAST: u32 = 0xffffffff; // 255.255.255.255
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpIface` is never constructed
[INFO] [stdout]   --> src/ip.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct IpIface {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `alloc`, `dev_index`, and `set_dev_index` are never used
[INFO] [stdout]   --> src/ip.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl IpIface {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 46 |     /// 新しいIPインタフェースを作成
[INFO] [stdout] 47 |     pub fn new(unicast: Ipv4Addr, netmask: Ipv4Addr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn alloc(unicast: &str, netmask: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn dev_index(&self) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn set_dev_index(&mut self, index: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IP_IFACES` is never used
[INFO] [stdout]   --> src/ip.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | static IP_IFACES: Mutex<Vec<IpIface>> = Mutex::new(Vec::new());
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_register` is never used
[INFO] [stdout]   --> src/ip.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn ip_iface_register(dev: &mut NetDevice, mut iface: IpIface) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_select` is never used
[INFO] [stdout]    --> src/ip.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn ip_iface_select(addr: Ipv4Addr) -> Option<IpIface> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_iface_get` is never used
[INFO] [stdout]    --> src/ip.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn ip_iface_get(dev: &NetDevice) -> Option<IpIface> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cksum16` is never used
[INFO] [stdout]    --> src/ip.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn cksum16(data: &[u8], init: u32) -> u16 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpHdr` is never constructed
[INFO] [stdout]    --> src/ip.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct IpHdr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ip.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl IpHdr {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 190 |     /// バージョンを取得 (上位4ビット)
[INFO] [stdout] 191 |     pub fn version(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn ihl(&self) -> u8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn hdr_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn set_vhl(version: u8, ihl: u8) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn flags(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn fragment_offset(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn total_len(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn identification(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn src_addr(&self) -> Ipv4Addr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn dst_addr(&self) -> Ipv4Addr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn from_bytes(data: &[u8]) -> Option<&IpHdr> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_print` is never used
[INFO] [stdout]    --> src/ip.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn ip_print(data: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_handler` is never used
[INFO] [stdout]    --> src/ip.rs:275:4
[INFO] [stdout]     |
[INFO] [stdout] 275 | fn dummy_handler(_data: &[u8]) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_init` is never used
[INFO] [stdout]    --> src/ip.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub fn ip_init(protocols: &mut Vec<NetProtocol>) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_input` is never used
[INFO] [stdout]    --> src/ip.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn ip_input(data: &[u8], dev: &NetDevice) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NetDeviceAddrMaxLen` should have an upper case name
[INFO] [stdout]  --> src/net.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 7 - const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stdout] 7 + const NET_DEVICE_ADDR_MAX_LEN: usize = 16;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.20s
[INFO] running `Command { std: "docker" "inspect" "4f2836fbd08d08ec5055d57998860e5ca0f70b5efa7c9d775daa043dc7508b27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f2836fbd08d08ec5055d57998860e5ca0f70b5efa7c9d775daa043dc7508b27", kill_on_drop: false }`
[INFO] [stdout] 4f2836fbd08d08ec5055d57998860e5ca0f70b5efa7c9d775daa043dc7508b27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 84a1d08e431ee9481bf9784740fc86659276533bff9453a2e84a5d15b4674cae
[INFO] running `Command { std: "docker" "start" "-a" "84a1d08e431ee9481bf9784740fc86659276533bff9453a2e84a5d15b4674cae", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]   --> src/platform/intr.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::collections::HashMap;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ProtocolStack`
[INFO] [stderr]  --> src/ip.rs:1:75
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::net::{NetDevice, NetIfaceFamily, NetProtocol, NetProtocolType, ProtocolStack, Result};
[INFO] [stderr]   |                                                                           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `flags`
[INFO] [stderr]  --> src/main.rs:6:45
[INFO] [stderr]   |
[INFO] [stderr] 6 | use platform::intr::{InterruptManager, irq, flags};
[INFO] [stderr]   |                                             ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]   --> src/driver/loopback.rs:15:22
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn output(&self, data: &[u8]) -> crate::net::Result<()> {
[INFO] [stderr]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `InitializationFailed`, `LockError`, `AlreadyInitialized`, and `NotInitialized` are never constructed
[INFO] [stderr]   --> src/platform/mod.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum PlatformError {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 17 |     InitializationFailed,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 18 |     LockError,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 19 |     AlreadyInitialized,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 20 |     NotInitialized,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlatformError` has derived impls for the traits `Clone` and `Debug`, 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: struct `Lock` is never constructed
[INFO] [stderr]   --> src/platform/mod.rs:67:12
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub struct Lock<T> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `acquire`, and `try_acquire` are never used
[INFO] [stderr]   --> src/platform/mod.rs:75:18
[INFO] [stderr]    |
[INFO] [stderr] 71 | impl<T> Lock<T> {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 75 |     pub const fn new(value: T) -> Self {
[INFO] [stderr]    |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 |     pub fn acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 |     pub fn try_acquire(&self) -> Result<MutexGuard<'_, T>> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `random16` is never used
[INFO] [stderr]    --> src/platform/mod.rs:104:8
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub fn random16() -> u16 {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `AllocationFailed` and `IrqNotFound` are never constructed
[INFO] [stderr]   --> src/platform/intr.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub enum IntrError {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 40 |     AllocationFailed,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     IrqNotFound(u32),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IntrError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_running` and `registered_count` are never used
[INFO] [stderr]    --> src/platform/intr.rs:281:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl InterruptManager {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub fn is_running(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub fn registered_count(&self) -> Result<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IRQ_BASE` is never used
[INFO] [stderr]   --> src/platform/intr.rs:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub const IRQ_BASE: u32 = 34;  // SIGRTMIN+1
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `InitFailed` is never constructed
[INFO] [stderr]   --> src/platform/sched.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum SchedError {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 26 |     InitFailed,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SchedError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `interrupt` is never used
[INFO] [stderr]    --> src/platform/sched.rs:240:8
[INFO] [stderr]     |
[INFO] [stderr]  68 | impl SchedTask {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 240 |     fn interrupt(&self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `interrupt_all` is never used
[INFO] [stderr]    --> src/platform/sched.rs:291:8
[INFO] [stderr]     |
[INFO] [stderr] 269 | impl TaskList {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 291 |     fn interrupt_all(&self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sched_irq_handler` is never used
[INFO] [stderr]    --> src/platform/sched.rs:317:8
[INFO] [stderr]     |
[INFO] [stderr] 317 | pub fn sched_irq_handler(_irq: u32, _arg: Option<&()>) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `AllocationFailed` and `CreateFailed` are never constructed
[INFO] [stderr]   --> src/platform/timer.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum TimerError {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 19 |     AllocationFailed,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     CreateFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TimerError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: static `GLOBAL_TIMER` is never used
[INFO] [stderr]    --> src/platform/timer.rs:242:8
[INFO] [stderr]     |
[INFO] [stderr] 242 | static GLOBAL_TIMER: OnceLock<Mutex<TimerManager>> = OnceLock::new();
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `timer_init` is never used
[INFO] [stderr]    --> src/platform/timer.rs:247:8
[INFO] [stderr]     |
[INFO] [stderr] 247 | pub fn timer_init() -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `timer_register` is never used
[INFO] [stderr]    --> src/platform/timer.rs:258:8
[INFO] [stderr]     |
[INFO] [stderr] 258 | pub fn timer_register<F>(interval: Duration, handler: F) -> Result<()>
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `timer_run` is never used
[INFO] [stderr]    --> src/platform/timer.rs:273:8
[INFO] [stderr]     |
[INFO] [stderr] 273 | pub fn timer_run() -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `timer_shutdown` is never used
[INFO] [stderr]    --> src/platform/timer.rs:285:8
[INFO] [stderr]     |
[INFO] [stderr] 285 | pub fn timer_shutdown() -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ProtocolStack` is never constructed
[INFO] [stderr]  --> src/net.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct ProtocolStack {
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `register_protocol`, and `handle_input` are never used
[INFO] [stderr]   --> src/net.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl ProtocolStack {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 14 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn register_protocol(&mut self, protocol: NetProtocol) -> Result<()> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn handle_input(&self, protocol_type: NetProtocolType, data: &[u8]) -> Result<()> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NetProtocolType` is never used
[INFO] [stderr]   --> src/net.rs:51:10
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub enum NetProtocolType {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NetProtocol` is never constructed
[INFO] [stderr]   --> src/net.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct NetProtocol {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/net.rs:65:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | impl NetProtocol {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 65 |     pub fn new(protocol_type: NetProtocolType, handler: fn(&[u8]) -> Result<()>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Dummy` and `Loopback` are never constructed
[INFO] [stderr]   --> src/net.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub enum NetDeviceType {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 74 |     Dummy  = 0x0000,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 75 |     Loopback = 0x0001,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Loopback`, `Broadcast`, `P2P`, and `NeedARP` are never constructed
[INFO] [stderr]   --> src/net.rs:81:5
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub enum NetDeviceFlag {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 80 |     Up          = 0x0001,
[INFO] [stderr] 81 |     Loopback    = 0x0010,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 82 |     Broadcast   = 0x0020,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 83 |     P2P         = 0x0040,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 84 |     NeedARP     = 0x0100,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `IP` and `IPv6` are never constructed
[INFO] [stderr]   --> src/net.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub enum NetIfaceFamily {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 90 |     IP = 1,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 91 |     IPv6 = 2,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NetIfaceFamily` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: trait `NetIface` is never used
[INFO] [stderr]   --> src/net.rs:95:11
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub trait NetIface {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `init` and `output` are never used
[INFO] [stderr]    --> src/net.rs:107:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub trait NetDeviceOps {
[INFO] [stderr]     |           ------------ methods in this trait
[INFO] [stderr] 106 |     // Placeholder for network device operations
[INFO] [stderr] 107 |     fn init(&self) -> Result<()>;
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 108 |     
[INFO] [stderr] 109 |     fn output(&self, data: &[u8]) -> Result<()>;
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/net.rs:132:5
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub struct NetDevice {
[INFO] [stderr]     |            --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 132 |     type_id: NetDeviceType,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 133 |     mtu: u16,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 134 |     flags: u8,
[INFO] [stderr] 135 |     hlen: u8,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 136 |     alen: u8,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 137 |     addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 138 |     broadcast_addr: [u8; NetDeviceAddrMaxLen],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 139 |     net_device_ops: Option<Box<dyn NetDeviceOps>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 140 |     void_ptr: Option<*mut ()>,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 141 |     /// インタフェースのインデックスリスト (ファミリごとに1つ)
[INFO] [stderr] 142 |     iface_indices: Vec<(NetIfaceFamily, usize)>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `name`, `index`, `add_iface`, and `get_iface_index` are never used
[INFO] [stderr]    --> src/net.rs:163:12
[INFO] [stderr]     |
[INFO] [stderr] 145 | impl NetDevice {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn name(&self) -> &str {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     pub fn index(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn add_iface(&mut self, family: NetIfaceFamily, iface_index: usize) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 185 |     pub fn get_iface_index(&self, family: NetIfaceFamily) -> Option<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> src/driver/loopback.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type Result<T> = std::result::Result<T, String>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LoopbackDeviceOps` is never constructed
[INFO] [stderr]  --> src/driver/loopback.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct LoopbackDeviceOps {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_VERSION_IPV4` is never used
[INFO] [stderr]  --> src/ip.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const IP_VERSION_IPV4: u8 = 4;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_SIZE_MIN` is never used
[INFO] [stderr]   --> src/ip.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const IP_HDR_SIZE_MIN: usize = 20;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_SIZE_MAX` is never used
[INFO] [stderr]   --> src/ip.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const IP_HDR_SIZE_MAX: usize = 60;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_TOTAL_SIZE_MAX` is never used
[INFO] [stderr]   --> src/ip.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub const IP_TOTAL_SIZE_MAX: usize = u16::MAX as usize;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_PAYLOAD_SIZE_MAX` is never used
[INFO] [stderr]   --> src/ip.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const IP_PAYLOAD_SIZE_MAX: usize = IP_TOTAL_SIZE_MAX - IP_HDR_SIZE_MIN;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_ADDR_LEN` is never used
[INFO] [stderr]   --> src/ip.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const IP_ADDR_LEN: usize = 4;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_FLAG_MF` is never used
[INFO] [stderr]   --> src/ip.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const IP_HDR_FLAG_MF: u16 = 0x2000; // more fragments flag
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_FLAG_DF` is never used
[INFO] [stderr]   --> src/ip.rs:23:11
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const IP_HDR_FLAG_DF: u16 = 0x4000; // don't fragment flag
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_FLAG_RF` is never used
[INFO] [stderr]   --> src/ip.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub const IP_HDR_FLAG_RF: u16 = 0x8000; // reserved
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_HDR_OFFSET_MASK` is never used
[INFO] [stderr]   --> src/ip.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const IP_HDR_OFFSET_MASK: u16 = 0x1fff;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_ADDR_ANY` is never used
[INFO] [stderr]   --> src/ip.rs:29:11
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const IP_ADDR_ANY: u32 = 0x00000000;       // 0.0.0.0
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IP_ADDR_BROADCAST` is never used
[INFO] [stderr]   --> src/ip.rs:30:11
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub const IP_ADDR_BROADCAST: u32 = 0xffffffff; // 255.255.255.255
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IpIface` is never constructed
[INFO] [stderr]   --> src/ip.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct IpIface {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `alloc`, `dev_index`, and `set_dev_index` are never used
[INFO] [stderr]   --> src/ip.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl IpIface {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 46 |     /// 新しいIPインタフェースを作成
[INFO] [stderr] 47 |     pub fn new(unicast: Ipv4Addr, netmask: Ipv4Addr) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn alloc(unicast: &str, netmask: &str) -> Result<Self> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     pub fn dev_index(&self) -> Option<u32> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 75 |     pub fn set_dev_index(&mut self, index: u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `IP_IFACES` is never used
[INFO] [stderr]   --> src/ip.rs:81:8
[INFO] [stderr]    |
[INFO] [stderr] 81 | static IP_IFACES: Mutex<Vec<IpIface>> = Mutex::new(Vec::new());
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_iface_register` is never used
[INFO] [stderr]   --> src/ip.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn ip_iface_register(dev: &mut NetDevice, mut iface: IpIface) -> Result<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_iface_select` is never used
[INFO] [stderr]    --> src/ip.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn ip_iface_select(addr: Ipv4Addr) -> Option<IpIface> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_iface_get` is never used
[INFO] [stderr]    --> src/ip.rs:116:8
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub fn ip_iface_get(dev: &NetDevice) -> Option<IpIface> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cksum16` is never used
[INFO] [stderr]    --> src/ip.rs:123:8
[INFO] [stderr]     |
[INFO] [stderr] 123 | pub fn cksum16(data: &[u8], init: u32) -> u16 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IpHdr` is never constructed
[INFO] [stderr]    --> src/ip.rs:166:12
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub struct IpHdr {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/ip.rs:191:12
[INFO] [stderr]     |
[INFO] [stderr] 189 | impl IpHdr {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr] 190 |     /// バージョンを取得 (上位4ビット)
[INFO] [stderr] 191 |     pub fn version(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 196 |     pub fn ihl(&self) -> u8 {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 201 |     pub fn hdr_len(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub fn set_vhl(version: u8, ihl: u8) -> u8 {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub fn flags(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn fragment_offset(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn total_len(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub fn identification(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     pub fn src_addr(&self) -> Ipv4Addr {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     pub fn dst_addr(&self) -> Ipv4Addr {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn from_bytes(data: &[u8]) -> Option<&IpHdr> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_print` is never used
[INFO] [stderr]    --> src/ip.rs:250:4
[INFO] [stderr]     |
[INFO] [stderr] 250 | fn ip_print(data: &[u8]) {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dummy_handler` is never used
[INFO] [stderr]    --> src/ip.rs:275:4
[INFO] [stderr]     |
[INFO] [stderr] 275 | fn dummy_handler(_data: &[u8]) -> Result<()> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_init` is never used
[INFO] [stderr]    --> src/ip.rs:280:8
[INFO] [stderr]     |
[INFO] [stderr] 280 | pub fn ip_init(protocols: &mut Vec<NetProtocol>) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_input` is never used
[INFO] [stderr]    --> src/ip.rs:292:4
[INFO] [stderr]     |
[INFO] [stderr] 292 | fn ip_input(data: &[u8], dev: &NetDevice) -> Result<()> {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NetDeviceAddrMaxLen` should have an upper case name
[INFO] [stderr]  --> src/net.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 7 - const NetDeviceAddrMaxLen: usize = 16;
[INFO] [stderr] 7 + const NET_DEVICE_ADDR_MAX_LEN: usize = 16;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: `rps` (bin "rps" test) generated 61 warnings (run `cargo fix --bin "rps" -p rps --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rps-52cbeefc6149861f)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test platform::intr::tests::test_irq_conflict ... ok
[INFO] [stdout] test platform::sched::tests::test_sched_init_run_shutdown ... ok
[INFO] [stdout] test platform::sched::tests::test_sched_task_new ... ok
[INFO] [stdout] test platform::timer::tests::test_timer_clear ... ok
[INFO] [stdout] test platform::timer::tests::test_timer_manager_creation ... ok
[INFO] [stdout] test platform::timer::tests::test_timer_registration ... ok
[INFO] [stdout] test platform::timer::tests::test_timer_execution ... ok
[INFO] [stdout] test platform::sched::tests::test_sched_task_wakeup ... ok
[INFO] [stdout] test platform::sched::tests::test_sched_task_with_external_lock ... ok
[INFO] [stdout] test platform::sched::tests::test_sched_task_timeout ... ok
[INFO] [stdout] test platform::intr::tests::test_register_and_raise ... ok
[INFO] [stdout] test platform::intr::tests::test_shared_irq ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "84a1d08e431ee9481bf9784740fc86659276533bff9453a2e84a5d15b4674cae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84a1d08e431ee9481bf9784740fc86659276533bff9453a2e84a5d15b4674cae", kill_on_drop: false }`
[INFO] [stdout] 84a1d08e431ee9481bf9784740fc86659276533bff9453a2e84a5d15b4674cae
