[INFO] cloning repository https://github.com/WondFS/sffs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WondFS/sffs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2Fsffs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2Fsffs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dd17470ac276a22025995f97dfa747f7e498000f
[INFO] testing WondFS/sffs against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2Fsffs" "/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/WondFS/sffs
[INFO] finished tweaking git repo https://github.com/WondFS/sffs
[INFO] tweaked toml for git repo https://github.com/WondFS/sffs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/WondFS/sffs on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/WondFS/sffs 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" "+beta-2025-09-21" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] edef0f1bdfc711c4070b5e300e15dc276a3863d356f67cd7bc5a87deb9a1d04e
[INFO] running `Command { std: "docker" "start" "-a" "edef0f1bdfc711c4070b5e300e15dc276a3863d356f67cd7bc5a87deb9a1d04e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "edef0f1bdfc711c4070b5e300e15dc276a3863d356f67cd7bc5a87deb9a1d04e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "edef0f1bdfc711c4070b5e300e15dc276a3863d356f67cd7bc5a87deb9a1d04e", kill_on_drop: false }`
[INFO] [stdout] edef0f1bdfc711c4070b5e300e15dc276a3863d356f67cd7bc5a87deb9a1d04e
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0b7251cbe5d58a133625e9913faceee75837e6c547962d7cebed60c9b144b2ff
[INFO] running `Command { std: "docker" "start" "-a" "0b7251cbe5d58a133625e9913faceee75837e6c547962d7cebed60c9b144b2ff", kill_on_drop: false }`
[INFO] [stderr]    Compiling snap v1.0.5
[INFO] [stderr]    Compiling sffs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/driver/disk_manager.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     use super::*;
[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: `crate::compress::compress`
[INFO] [stdout]  --> src/inode/inode.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::compress::compress;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:48:29
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn erase(&mut self, dev: u8, block_no: u32) {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]   --> src/raw/raw_node.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let metadata = [0u8; 100];
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/raw/raw_node.rs:87:16
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let mut address = block_no * 128;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:433:29
[INFO] [stdout]     |
[INFO] [stdout] 433 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:446:29
[INFO] [stdout]     |
[INFO] [stdout] 446 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:451:29
[INFO] [stdout]     |
[INFO] [stdout] 451 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_no`
[INFO] [stdout]   --> src/driver/disk.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]   --> src/driver/disk.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/driver/disk.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_no`
[INFO] [stdout]   --> src/driver/disk.rs:21:34
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn disk_erase(&mut self, block_no: u32) {
[INFO] [stdout]    |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inode`
[INFO] [stdout]    --> src/inode/inode_test.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let inode = self.core.as_mut().unwrap().borrow_mut().dispose_event_group(event_group).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_inode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `huffman`
[INFO] [stdout]   --> src/compress/compress.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `huffman`
[INFO] [stdout]   --> src/compress/compress.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compress_type`
[INFO] [stdout]   --> src/compress/compress.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn decode(bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compress_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GCEventGroup` is never constructed
[INFO] [stdout]  --> src/gc/gc_event.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct GCEventGroup {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/gc/gc_event.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl GCEventGroup {
[INFO] [stdout]   | ----------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new() -> GCEventGroup {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GCEvent` is never used
[INFO] [stdout]   --> src/gc/gc_event.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum GCEvent {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_index` is never used
[INFO] [stdout]   --> src/gc/gc_event.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GCEvent {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 21 |     pub fn get_index(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EraseGCEvent` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct EraseGCEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveGCEvent` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MoveGCEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PageUsedStatus` is never used
[INFO] [stdout]  --> src/gc/gc_manager.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum PageUsedStatus {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GCManager` is never constructed
[INFO] [stdout]   --> src/gc/gc_manager.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GCManager {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find_next_pos_to_write`, `find_next_pos_to_write_except`, and `generate_gc_event` are never used
[INFO] [stdout]   --> src/gc/gc_manager.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl GCManager {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> GCManager {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn find_next_pos_to_write(&self, size: u32) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn find_next_pos_to_write_except(&self, size: u32, block_no: u32) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn generate_gc_event(&mut self) -> gc_event::GCEventGroup {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_table` and `get_table` are never used
[INFO] [stdout]    --> src/gc/gc_manager.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl GCManager {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 117 |     pub fn set_table(&mut self, address: u32, status: PageUsedStatus) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_table(&self, address: u32) -> PageUsedStatus {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MainTable` is never constructed
[INFO] [stdout]  --> src/gc/main_table.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MainTable {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_page`, and `get_page` are never used
[INFO] [stdout]   --> src/gc/main_table.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl MainTable {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> MainTable {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn set_page(&mut self, address: u32, status: gc_manager::PageUsedStatus) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_page(&self, address: u32) -> gc_manager::PageUsedStatus {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockInfo` is never constructed
[INFO] [stdout]  --> src/gc/block_table.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct BlockInfo {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockTable` is never constructed
[INFO] [stdout]  --> src/gc/block_table.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct BlockTable {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `clean_page`, and `use_page` are never used
[INFO] [stdout]   --> src/gc/block_table.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BlockTable {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(size: u32) -> BlockTable {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn clean_page(&mut self, address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn use_page(&mut self, address: u32) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeKV` is never constructed
[INFO] [stdout]  --> src/kv/fake_kv.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FakeKV {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_inode`, `update_inode`, `delete_inode`, and `allocate_inode` are never used
[INFO] [stdout]   --> src/kv/fake_kv.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl FakeKV {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> FakeKV {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn get_inode(&self, ino: u32) -> raw_inode::RawInode {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn update_inode(&mut self, inode: raw_inode::RawInode) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn delete_inode(&mut self, ino: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn allocate_inode(&mut self) -> raw_inode::RawInode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawEntry` is never constructed
[INFO] [stdout]  --> src/kv/raw_inode.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RawEntry {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawInode` is never constructed
[INFO] [stdout]  --> src/kv/raw_inode.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct RawInode {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Buf` is never constructed
[INFO] [stdout]  --> src/buf.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Buf {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/buf.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Buf {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(address: u32, data: [u8; 4096]) -> Buf {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BufCache` is never constructed
[INFO] [stdout]   --> src/buf.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct BufCache {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read`, `write`, and `erase` are never used
[INFO] [stdout]   --> src/buf.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl BufCache {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> BufCache {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn erase(&mut self, dev: u8, block_no: u32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_data`, `put_data`, and `remove_data` are never used
[INFO] [stdout]   --> src/buf.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl BufCache {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 64 |     pub fn get_data(&mut self, address: u32) -> Option<[u8; 4096]> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn put_data(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn remove_data(&mut self, address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawData` is never constructed
[INFO] [stdout]  --> src/raw/raw_data.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct RawData {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_page` are never used
[INFO] [stdout]   --> src/raw/raw_data.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl RawData {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout]  8 |     pub fn new(data: Vec<u8>) -> RawData {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_page(&self, index: u32) -> Option<[u8; 4096]> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawFile` is never constructed
[INFO] [stdout]  --> src/raw/raw_file.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RawFile {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_file.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl RawFile {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> RawFile {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RawNodeType` is never used
[INFO] [stdout]  --> src/raw/raw_node.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum RawNodeType {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNode` is never constructed
[INFO] [stdout]  --> src/raw/raw_node.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RawNode {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNodeNodeEntry` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct RawNodeNodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNodeDataEntry` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct RawNodeDataEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeRegion` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct NodeRegion {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_node.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl NodeRegion {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 40 |     fn new(data: [u8; 3072],) -> NodeRegion {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataRegion` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct DataRegion {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_node.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl DataRegion {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 66 |     fn new(data: [u8; 3072]) -> DataRegion {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `decode` are never used
[INFO] [stdout]    --> src/raw/raw_node.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RawNode {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn decode(&self) -> [u8; 4096] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperBlock` is never constructed
[INFO] [stdout]  --> src/raw/raw_super.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SuperBlock {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/raw/raw_super.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl SuperBlock {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 6 |     fn new() -> SuperBlock {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BIT` is never constructed
[INFO] [stdout]  --> src/core/bit.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct BIT {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/bit.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl BIT {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new() -> BIT {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn init_page(&mut self, address: u32, status: bool) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_page(&self, address: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_page(&mut self, address: u32, status: bool) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn get_block(&self, block_no: u32) -> Option<[bool; 128]> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn set_block(&mut self, block_no: u32, status: [bool; 128]) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn encode(&self) -> array::Array2<u8> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn need_sync(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn sync(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn begin_op(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn end_op(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PIT` is never constructed
[INFO] [stdout]  --> src/core/pit.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct PIT {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/pit.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl PIT {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn new() -> PIT {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn init_page(&mut self, address: u32, status: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn get_page(&self, address: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn set_page(&mut self, address: u32, status: u32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn delete_page(&mut self, address: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn clean_page(&mut self, address: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn encode(&self) -> Array2<u8> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn need_sync(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn sync(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn begin_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn end_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataRegion` is never constructed
[INFO] [stdout]    --> src/core/pit.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct DataRegion {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/core/pit.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl DataRegion {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 114 |     pub fn new(data: &array::Array2<u8>) -> DataRegion {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VAM` is never constructed
[INFO] [stdout]  --> src/core/vam.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct VAM {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/vam.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl VAM {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> VAM {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn get_available_address(&mut self, size: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_virtual_address(&self, address: u32) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_physic_address(&self, v_address: u32) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn insert_map(&mut self, address: u32, v_address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn update_map(&mut self, address: u32, v_address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn delete_map(&mut self, address: u32, v_address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoreManager` is never constructed
[INFO] [stdout]   --> src/core/core_manager.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct CoreManager {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_sb`, and `mount` are never used
[INFO] [stdout]   --> src/core/core_manager.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CoreManager {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn new() -> CoreManager {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn read_sb(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn mount(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate_inode`, `get_inode`, `update_inode`, `delete_inode`, `get_raw_inode`, and `update_raw_inode` are never used
[INFO] [stdout]   --> src/core/core_manager.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl CoreManager {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 48 |     pub fn allocate_inode(&mut self) -> inode::Inode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_inode(&mut self, ino: u32) -> inode::Inode {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn update_inode(&mut self, inode: inode::Inode) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn delete_inode(&mut self, ino: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_raw_inode(&mut self, ino: u32) -> raw_inode::RawInode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn update_raw_inode(&mut self, raw_inode: raw_inode::RawInode) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_next_pos_to_write`, `forward_gc`, `background_gc`, `set_main_table_page`, and `dispose_gc_group` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  89 |     pub fn find_next_pos_to_write(&mut self, size: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn forward_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_main_table_page(&mut self, address: u32, status: PageUsedStatus) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn dispose_gc_group(&mut self, gc_group: gc_event::GCEventGroup) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_bit`, `set_bit`, `update_bit`, `sync_bit`, `bit_begin_op`, and `bit_end_op` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 174 |     pub fn read_bit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_bit(&mut self, data: array::Array2::<u8>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn update_bit(&mut self, address: u32, status: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn sync_bit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn bit_begin_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn bit_end_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/core_manager.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 244 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 245 |     // 因为会爆栈，暂时改成1个Block
[INFO] [stdout] 246 |     pub fn read_pit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn set_pit(&mut self, data: array::Array2::<u8>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn update_pit(&mut self, address: u32, status: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn dirty_pit(&mut self, address: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn clean_pit(&mut self, address: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn sync_pit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn pit_begin_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn pit_end_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_page`, `read_block`, `write_page`, `write_block`, and `erase_block` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 319 |     pub fn read_page(&mut self, address: u32, is_main: bool) -> [u8; 4096] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn read_block(&mut self, block_no: u32, is_main: bool) -> array::Array1::<[u8; 4096]> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn write_page(&mut self, address: u32, data: [u8; 4096], is_main: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn write_block(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>, is_main: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn erase_block(&mut self, block_no: u32, is_main: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_data` and `dispose_event_group` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:373:12
[INFO] [stdout]     |
[INFO] [stdout] 372 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 373 |     pub fn read_data(&mut self, v_address: u32) -> [u8; 4096] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn dispose_event_group(&mut self, event_group: inode_event::InodeEventGroup) -> Option<inode::Inode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `transfer_raw_inode_to_inode`, `transfer_inode_to_raw_inode`, `sort_gc_event`, `sort_inode_event`, `truncate_array_1_to_array_2`, and `truncate_array_2_to_array_1` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:497:12
[INFO] [stdout]     |
[INFO] [stdout] 495 | impl CoreManager {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 496 |     // 注意这里不进行虚拟地址的转换
[INFO] [stdout] 497 |     pub fn transfer_raw_inode_to_inode(raw_inode: &raw_inode::RawInode) -> inode::Inode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub fn transfer_inode_to_raw_inode(inode: &inode::Inode) -> raw_inode::RawInode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 562 |     pub fn sort_gc_event(event_group: &mut gc_event::GCEventGroup) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn sort_inode_event(event_group: &mut inode_event::InodeEventGroup) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     pub fn truncate_array_1_to_array_2(array: array::Array1<[u8; 4096]>) -> array::Array2::<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     pub fn truncate_array_2_to_array_1(array: array::Array2<u8>) -> array::Array1::<[u8; 4096]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiskDriver` is never constructed
[INFO] [stdout]  --> src/driver/disk.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DiskDriver {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `disk_read`, `disk_write`, and `disk_erase` are never used
[INFO] [stdout]   --> src/driver/disk.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl DiskDriver {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout]  8 |     pub fn new() -> DiskDriver {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn disk_erase(&mut self, block_no: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeDisk` is never constructed
[INFO] [stdout]  --> src/driver/fake_disk.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FakeDisk {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `fake_disk_read`, `fake_disk_write`, and `fake_disk_erase` are never used
[INFO] [stdout]   --> src/driver/fake_disk.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl FakeDisk {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(size: u32) -> FakeDisk {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn fake_disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn fake_disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn fake_disk_erase(&mut self, block_no: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiskManager` is never constructed
[INFO] [stdout]  --> src/driver/disk_manager.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct DiskManager {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/driver/disk_manager.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl DiskManager {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(is_virtual: bool) -> DiskManager {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn disk_erase(&mut self, block_no: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn transfer(data: [[u8; 4096]; 128]) -> array::Array1<[u8; 4096]> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Array1` is never constructed
[INFO] [stdout]  --> src/util/array.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Array1<T> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/util/array.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<T: Copy> Array1<T> {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new(size: u32) -> Array1<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn len(&self) -> u32 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn init(&mut self, value: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn get(&self, index: u32) -> T {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn set(&mut self, index: u32, value: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn iter(&self) -> Iter1<'_, T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn dup(&self) -> Array1<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter1` is never constructed
[INFO] [stdout]   --> src/util/array.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Iter1<'a, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/array.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T: Copy> Iter1<'a, T> {
[INFO] [stdout]    | ------------------------------ associated function in this implementation
[INFO] [stdout] 49 |     fn new(array: &'a s_array::SArray<T>) -> Iter1<'a, T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Array2` is never constructed
[INFO] [stdout]   --> src/util/array.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Array2<T> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/util/array.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl<T: Copy> Array2<T> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  76 |     pub fn new(row: u32, column: u32) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn len(&self) -> u32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn size(&self) -> [u32; 2] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn init(&mut self, value: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get(&self, row: u32, column: u32) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn set(&mut self, row: u32, column: u32, value: T) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn iter(&self) -> Iter2<'_, T> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn dup(&self) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter2` is never constructed
[INFO] [stdout]    --> src/util/array.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct Iter2<'a, T> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/util/array.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl<'a, T: Copy> Iter2<'a, T> {
[INFO] [stdout]     | ------------------------------ associated function in this implementation
[INFO] [stdout] 121 |     fn new(array: &'a s_array::SArray<T>) -> Iter2<'a, T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SArray` is never constructed
[INFO] [stdout]  --> src/util/s_array.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct SArray<T> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/util/s_array.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<T: Copy> SArray<T> {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(dimension: u8, size: Vec<u32>) -> SArray<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_len(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> Vec<u32> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn init_array(&mut self, value: T) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn set(&mut self, pos: Vec<u32>, value: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn get(&self, pos: Vec<u32>) -> T {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn dup(&self) -> SArray<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn get_off(&self, pos: &Vec<u32>) -> u32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn check_off(&self, pos: &Vec<u32>) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LRUCache` is never constructed
[INFO] [stdout]  --> src/util/lru_cache.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LRUCache<T> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Link` is never used
[INFO] [stdout]   --> src/util/lru_cache.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Link<T> = Option<Rc<RefCell<Node<T>>>>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/util/lru_cache.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeEntry` is never constructed
[INFO] [stdout]   --> src/util/lru_cache.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct NodeEntry<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/lru_cache.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl<T> Node<T> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(entry: NodeEntry<T>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_size`, `contains_key`, `get`, `put`, and `remove` are never used
[INFO] [stdout]   --> src/util/lru_cache.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl <T: Copy> LRUCache<T> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 40 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn get_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn contains_key(&self, key: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<T>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn put(&mut self, key: u32, value: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn remove(&mut self, key: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `delete_node`, `push_front`, and `pop_back` are never used
[INFO] [stdout]    --> src/util/lru_cache.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl<T: Copy> LRUCache<T> {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 102 |     fn delete_node(&mut self, node: &mut Link<T>) -> NodeEntry<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn push_front(&mut self, entry: NodeEntry<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn pop_back(&mut self) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `List` is never constructed
[INFO] [stdout]  --> src/util/safe_linked_list.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct List<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Link` is never used
[INFO] [stdout]  --> src/util/safe_linked_list.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type Link<T> = Option<Rc<RefCell<Node<T>>>>;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/util/safe_linked_list.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/safe_linked_list.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T> Node<T> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 18 |     fn new(elem: T) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/util/safe_linked_list.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl<T> List<T> {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  28 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn push_front(&mut self, elem: T) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn push_back(&mut self, elem: T) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn pop_front(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn pop_back(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn peek_front(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn peek_back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn into_iter(self) -> IntoIter<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IntoIter` is never constructed
[INFO] [stdout]    --> src/util/safe_linked_list.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct IntoIter<T>(List<T>);
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `List` is never constructed
[INFO] [stdout]  --> src/util/unsafe_linked_list.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct List<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Link` is never used
[INFO] [stdout]  --> src/util/unsafe_linked_list.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Link<T> = *mut Node<T>;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/util/unsafe_linked_list.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IntoIter` is never constructed
[INFO] [stdout]   --> src/util/unsafe_linked_list.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct IntoIter<T>(List<T>);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter` is never constructed
[INFO] [stdout]   --> src/util/unsafe_linked_list.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Iter<'a, T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IterMut` is never constructed
[INFO] [stdout]   --> src/util/unsafe_linked_list.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct IterMut<'a, T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/util/unsafe_linked_list.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl <T> List<T> {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn push(&mut self, elem: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn pop(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn peek(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn peek_mut(&mut self) -> Option<&mut T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn into_iter(self) -> IntoIter<T> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InodeFileType` is never used
[INFO] [stdout]  --> src/inode/inode.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum InodeFileType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeStat` is never constructed
[INFO] [stdout]   --> src/inode/inode.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct InodeStat {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeEntry` is never constructed
[INFO] [stdout]   --> src/inode/inode.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct InodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inode` is never constructed
[INFO] [stdout]   --> src/inode/inode.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Inode {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/inode/inode.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Inode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  49 |     pub fn new() -> Inode {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn read_all(&mut self, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn read(&mut self, offset: u32, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn write(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn insert(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn truncate(&mut self, offset: u32, len: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn truncate_to_end(&mut self, offset: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_stat`, `modify_stat`, `dup`, and `delete` are never used
[INFO] [stdout]    --> src/inode/inode.rs:382:12
[INFO] [stdout]     |
[INFO] [stdout] 381 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 382 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn modify_stat(&mut self, stat: InodeStat) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn delete(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_entry`, `update_by_another_inode`, `copy_inode`, and `debug` are never used
[INFO] [stdout]    --> src/inode/inode.rs:442:12
[INFO] [stdout]     |
[INFO] [stdout] 441 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 442 |     pub fn read_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn update_by_another_inode(&mut self, inode: Inode) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     pub fn copy_inode(&self) -> Inode {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeManager` is never constructed
[INFO] [stdout]  --> src/inode/inode_manager.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InodeManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CoreLink` is never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type CoreLink = Arc<RefCell<core_manager::CoreManager>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InodeLink` is never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type InodeLink = Arc<RefCell<Inode>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `i_alloc`, `i_get`, `i_dup`, and `i_put` are never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl InodeManager {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> InodeManager {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn i_alloc(&mut self) -> Option<InodeLink> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn i_get(&mut self, ino: u32) -> Option<InodeLink> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn i_dup(&mut self, inode: &InodeLink) -> InodeLink {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn i_put(&mut self, inode: InodeLink) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeEventGroup` is never constructed
[INFO] [stdout]  --> src/inode/inode_event.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct InodeEventGroup {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `dup`, and `debug` are never used
[INFO] [stdout]   --> src/inode/inode_event.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl InodeEventGroup {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> InodeEventGroup {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn dup(&self) -> InodeEventGroup {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn debug(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InodeEvent` is never used
[INFO] [stdout]   --> src/inode/inode_event.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum InodeEvent {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_index` is never used
[INFO] [stdout]   --> src/inode/inode_event.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl InodeEvent {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 64 |     pub fn get_index(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddContentInodeEvent` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct AddContentInodeEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TruncateContentInodeEvent` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct TruncateContentInodeEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangeContentInodeEvent` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct ChangeContentInodeEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeleteContentInodeEvent` is never constructed
[INFO] [stdout]    --> src/inode/inode_event.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct DeleteContentInodeEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModifyInodeStatInodeEvent` is never constructed
[INFO] [stdout]    --> src/inode/inode_event.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct ModifyInodeStatInodeEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InodeFileType` is never used
[INFO] [stdout]  --> src/inode/inode_test.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum InodeFileType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeStat` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct InodeStat {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeEntry` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct InodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inode` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Inode {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_all`, `read`, and `write` are never used
[INFO] [stdout]    --> src/inode/inode_test.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl Inode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  51 |     pub fn new() -> Inode {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn read_all(&mut self, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn read(&mut self, offset: u32, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn write(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stat` is never used
[INFO] [stdout]    --> src/inode/inode_test.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 213 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_decompress_entry`, `read_entry`, `update_by_another_inode`, and `copy_inode` are never used
[INFO] [stdout]    --> src/inode/inode_test.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 228 |     pub fn read_decompress_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn read_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn update_by_another_inode(&mut self, inode: Inode) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn copy_inode(&self) -> Inode {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_elem` is never used
[INFO] [stdout]  --> src/common/path.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn skip_elem(path: String) -> Option<(String, String)> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_x` is never used
[INFO] [stdout]   --> src/common/path.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn name_x(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String, name_i_parent: bool) -> Option<inode_manager:...
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_i` is never used
[INFO] [stdout]   --> src/common/path.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn name_i(i_manager: &mut inode_manager::InodeManager, path: String) -> Option<inode_manager::InodeLink> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_i_parent` is never used
[INFO] [stdout]   --> src/common/path.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn name_i_parent(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String) -> Option<inode_manager::InodeLink> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileDescriptorType` is never used
[INFO] [stdout]  --> src/common/file.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum FileDescriptorType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileType` is never used
[INFO] [stdout]   --> src/common/file.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum FileType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileStat` is never constructed
[INFO] [stdout]   --> src/common/file.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct FileStat {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]   --> src/common/file.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct File {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `file_stat`, `file_read`, and `file_write` are never used
[INFO] [stdout]   --> src/common/file.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl File {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 37 |     // Get metadata about file f.
[INFO] [stdout] 38 |     pub fn file_stat(&self) -> Option<FileStat> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn file_read(&mut self, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn file_write(&mut self, len: u32, buf: &Vec<u8>) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `transfer_inode_stat_to_stat`, and `transfer_stat_to_inode` are never used
[INFO] [stdout]    --> src/common/file.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl File {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout]  82 |     pub fn new() -> File {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn transfer_inode_stat_to_stat(inode_stat: inode::InodeStat) -> FileStat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn transfer_stat_to_inode(stat: FileStat) -> inode::InodeStat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_lookup` is never used
[INFO] [stdout]  --> src/common/directory.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn dir_lookup(inode: &inode_manager::InodeLink, name: String) -> Option<(u32, usize)> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_link` is never used
[INFO] [stdout]   --> src/common/directory.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn dir_link(inode: &mut inode_manager::InodeLink, ino: u32, name: String) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_unlink` is never used
[INFO] [stdout]   --> src/common/directory.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn dir_unlink(inode:&mut inode_manager::InodeLink, ino: u32, name: String) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DirectoryInodeEntry` is never constructed
[INFO] [stdout]   --> src/common/directory.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct DirectoryInodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DirectoryParser` is never constructed
[INFO] [stdout]   --> src/common/directory.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct DirectoryParser {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `decode`, and `encode` are never used
[INFO] [stdout]    --> src/common/directory.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl DirectoryParser {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout]  90 |     pub fn new(data: &Vec<u8>) -> DirectoryParser {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn decode(buf: &Vec<u8>) -> Option<DirectoryInodeEntry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn encode(entry: &DirectoryInodeEntry) -> Option<Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileTable` is never constructed
[INFO] [stdout]  --> src/common/file_table.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct FileTable {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FileLink` is never used
[INFO] [stdout]   --> src/common/file_table.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type FileLink = Arc<RefCell<file::File>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `file_alloc`, `file_dup`, and `file_close` are never used
[INFO] [stdout]   --> src/common/file_table.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl FileTable {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new() -> FileTable {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn file_alloc(&mut self) -> Option<FileLink> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn file_dup(&mut self, link: &FileLink) -> FileLink {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn file_close(&mut self, link: FileLink) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Snappy` is never constructed
[INFO] [stdout]  --> src/compress/snappy.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Snappy {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/compress/snappy.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Snappy {
[INFO] [stdout]   | ----------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefHuffmanTree` is never used
[INFO] [stdout]  --> src/compress/huffman.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type RefHuffmanTree = Rc<RefCell<HuffmanTree>>;
[INFO] [stdout]   |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Weight` is never used
[INFO] [stdout]  --> src/compress/huffman.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type Weight = u32;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanTree` is never constructed
[INFO] [stdout]   --> src/compress/huffman.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HuffmanTree {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `build`, and `find_min` are never used
[INFO] [stdout]   --> src/compress/huffman.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl HuffmanTree {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 20 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn build(char_weight: CharWeightMap) -> RefHuffmanTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn find_min(tree_slice: &[Rc<RefCell<HuffmanTree>>]) -> Option<Rc<RefCell<HuffmanTree>>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CharWeightMap` is never constructed
[INFO] [stdout]   --> src/compress/huffman.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct CharWeightMap {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `build`, `len`, and `iter` are never used
[INFO] [stdout]   --> src/compress/huffman.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl CharWeightMap {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 77 |     pub fn build() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanBinaryMap` is never constructed
[INFO] [stdout]    --> src/compress/huffman.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct HuffmanBinaryMap {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build` and `tree_dfs` are never used
[INFO] [stdout]    --> src/compress/huffman.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl HuffmanBinaryMap {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] 106 |     pub fn build(huffman_tree: RefHuffmanTree) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn tree_dfs(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanCodec` is never constructed
[INFO] [stdout]    --> src/compress/huffman.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct HuffmanCodec {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `encode`, and `decode` are never used
[INFO] [stdout]    --> src/compress/huffman.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl HuffmanCodec {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 153 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn encode(source: &String, bit_map: &HuffmanBinaryMap) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn decode(source: &[u8], decode_map: &DecodeConfig) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DecodeConfig` is never constructed
[INFO] [stdout]    --> src/compress/huffman.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct DecodeConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `build` and `get` are never used
[INFO] [stdout]    --> src/compress/huffman.rs:231:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl DecodeConfig {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 231 |     pub fn build(source: &String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn get(&self, k: &String) -> Option<&char> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompressType` is never used
[INFO] [stdout]  --> src/compress/compress.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum CompressType {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Compress` is never used
[INFO] [stdout]   --> src/compress/compress.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Compress {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressManager` is never constructed
[INFO] [stdout]   --> src/compress/compress.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct CompressManager;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `encode` and `decode` are never used
[INFO] [stdout]   --> src/compress/compress.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl CompressManager {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn encode(bytes: &[u8]) -> (Vec<u8>, CompressType) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn decode(bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Proc` is never constructed
[INFO] [stdout]  --> src/fake_proc.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Proc {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `my_proc` is never used
[INFO] [stdout]   --> src/fake_proc.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn my_proc() -> Proc {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteBuf` is never constructed
[INFO] [stdout]  --> src/write_buf.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct WriteBuf {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteCache` is never constructed
[INFO] [stdout]  --> src/write_buf.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct WriteCache {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/write_buf.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl WriteCache {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new() -> WriteCache {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn read(&self, address: u32) -> Option<[u8; 4096]> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn get_all(&self) -> Vec<(u32, [u8; 4096])> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn recall_write(&mut self, address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn contains_address(&self, address: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn need_sync(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn sync(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperStat` is never constructed
[INFO] [stdout]  --> src/super_stat.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SuperStat {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/super_stat.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl SuperStat {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new() -> SuperStat {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/lru_cache.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<T>> {
[INFO] [stdout]    |                ^^^^^^^^^                      ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<'_, T>> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/safe_linked_list.rs:95:23
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn peek_front(&self) -> Option<Ref<T>> {
[INFO] [stdout]    |                       ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn peek_front(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn peek_back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |                      ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn peek_back(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:107:27
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |                           ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |                          ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 38 -         let _ = self.lock.lock();
[INFO] [stdout] 38 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 59 -         let _ = self.lock.lock();
[INFO] [stdout] 59 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 82 -         let _ = self.lock.lock();
[INFO] [stdout] 82 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 91 -         let _ = self.lock.lock();
[INFO] [stdout] 91 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 32 -         let _ = self.lock.lock();
[INFO] [stdout] 32 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 44 -         let _ = self.lock.lock();
[INFO] [stdout] 44 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 51 -         let _ = self.lock.lock();
[INFO] [stdout] 51 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/compress/huffman.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn iter(&self) -> Iter<'_, char, Weight> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.81s
[INFO] running `Command { std: "docker" "inspect" "0b7251cbe5d58a133625e9913faceee75837e6c547962d7cebed60c9b144b2ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b7251cbe5d58a133625e9913faceee75837e6c547962d7cebed60c9b144b2ff", kill_on_drop: false }`
[INFO] [stdout] 0b7251cbe5d58a133625e9913faceee75837e6c547962d7cebed60c9b144b2ff
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9eeca85c714b6f741ce0318526affcbb15bee9a387f24026051b689ae4a60e12
[INFO] running `Command { std: "docker" "start" "-a" "9eeca85c714b6f741ce0318526affcbb15bee9a387f24026051b689ae4a60e12", kill_on_drop: false }`
[INFO] [stderr]    Compiling sffs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::compress::compress`
[INFO] [stdout]  --> src/inode/inode.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::compress::compress;
[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: `std::sync::Arc`
[INFO] [stdout]    --> src/inode/inode.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     use std::sync::Arc;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:48:29
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn erase(&mut self, dev: u8, block_no: u32) {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]   --> src/raw/raw_node.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let metadata = [0u8; 100];
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/raw/raw_node.rs:87:16
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let mut address = block_no * 128;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:433:29
[INFO] [stdout]     |
[INFO] [stdout] 433 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:446:29
[INFO] [stdout]     |
[INFO] [stdout] 446 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:451:29
[INFO] [stdout]     |
[INFO] [stdout] 451 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_no`
[INFO] [stdout]   --> src/driver/disk.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]   --> src/driver/disk.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/driver/disk.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_no`
[INFO] [stdout]   --> src/driver/disk.rs:21:34
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn disk_erase(&mut self, block_no: u32) {
[INFO] [stdout]    |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inode`
[INFO] [stdout]    --> src/inode/inode_test.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let inode = self.core.as_mut().unwrap().borrow_mut().dispose_event_group(event_group).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_inode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `huffman`
[INFO] [stdout]   --> src/compress/compress.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `huffman`
[INFO] [stdout]   --> src/compress/compress.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compress_type`
[INFO] [stdout]   --> src/compress/compress.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn decode(bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compress_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum GCEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GCEvent` 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: field `size` is never read
[INFO] [stdout]  --> src/gc/block_table.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct BlockInfo {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] 3 |     pub size: u32,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BlockInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]  --> src/buf.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Buf {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 6 |     pub address: u32,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Buf` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]   --> src/buf.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct BufCache {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 20 |     pub capacity: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawData` is never constructed
[INFO] [stdout]  --> src/raw/raw_data.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct RawData {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_page` are never used
[INFO] [stdout]   --> src/raw/raw_data.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl RawData {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout]  8 |     pub fn new(data: Vec<u8>) -> RawData {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_page(&self, index: u32) -> Option<[u8; 4096]> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawFile` is never constructed
[INFO] [stdout]  --> src/raw/raw_file.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RawFile {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_file.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl RawFile {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> RawFile {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RawNodeType` is never used
[INFO] [stdout]  --> src/raw/raw_node.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum RawNodeType {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNode` is never constructed
[INFO] [stdout]  --> src/raw/raw_node.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RawNode {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNodeNodeEntry` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct RawNodeNodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawNodeDataEntry` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct RawNodeDataEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeRegion` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct NodeRegion {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_node.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl NodeRegion {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 40 |     fn new(data: [u8; 3072],) -> NodeRegion {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataRegion` is never constructed
[INFO] [stdout]   --> src/raw/raw_node.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct DataRegion {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/raw/raw_node.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl DataRegion {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 66 |     fn new(data: [u8; 3072]) -> DataRegion {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `decode` are never used
[INFO] [stdout]    --> src/raw/raw_node.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RawNode {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn decode(&self) -> [u8; 4096] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperBlock` is never constructed
[INFO] [stdout]  --> src/raw/raw_super.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SuperBlock {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/raw/raw_super.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl SuperBlock {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 6 |     fn new() -> SuperBlock {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read_sb` is never used
[INFO] [stdout]   --> src/core/core_manager.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CoreManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn read_sb(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_gc` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bit_end_op` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn bit_end_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pit_end_op` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 244 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn pit_end_op(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/util/array.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Iter1<'a, T> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     size: u32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_size` and `contains_key` are never used
[INFO] [stdout]   --> src/util/lru_cache.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl <T: Copy> LRUCache<T> {
[INFO] [stdout]    | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn get_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn contains_key(&self, key: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ref_cnt` is never read
[INFO] [stdout]   --> src/inode/inode.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct InodeStat {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub ref_cnt: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lock` is never read
[INFO] [stdout]   --> src/inode/inode.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Inode {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub lock: Mutex<bool>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `truncate_to_end` is never used
[INFO] [stdout]    --> src/inode/inode.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn truncate_to_end(&mut self, offset: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_stat` and `dup` are never used
[INFO] [stdout]    --> src/inode/inode.rs:382:12
[INFO] [stdout]     |
[INFO] [stdout] 381 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 382 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]    --> src/inode/inode.rs:500:12
[INFO] [stdout]     |
[INFO] [stdout] 441 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `capacity` are never read
[INFO] [stdout]  --> src/inode/inode_manager.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InodeManager {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] 7 |     pub size: usize,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub capacity: usize,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum InodeEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InodeEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InodeFileType` is never used
[INFO] [stdout]  --> src/inode/inode_test.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum InodeFileType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeStat` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct InodeStat {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeEntry` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct InodeEntry {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inode` is never constructed
[INFO] [stdout]   --> src/inode/inode_test.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Inode {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_all`, `read`, and `write` are never used
[INFO] [stdout]    --> src/inode/inode_test.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl Inode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  51 |     pub fn new() -> Inode {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn read_all(&mut self, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn read(&mut self, offset: u32, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn write(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stat` is never used
[INFO] [stdout]    --> src/inode/inode_test.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 213 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_decompress_entry`, `read_entry`, `update_by_another_inode`, and `copy_inode` are never used
[INFO] [stdout]    --> src/inode/inode_test.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 228 |     pub fn read_decompress_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn read_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn update_by_another_inode(&mut self, inode: Inode) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn copy_inode(&self) -> Inode {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_i` is never used
[INFO] [stdout]   --> src/common/path.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn name_i(i_manager: &mut inode_manager::InodeManager, path: String) -> Option<inode_manager::InodeLink> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_i_parent` is never used
[INFO] [stdout]   --> src/common/path.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn name_i_parent(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String) -> Option<inode_manager::InodeLink> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PIPE`, `INODE`, and `DEVICE` are never constructed
[INFO] [stdout]   --> src/common/file.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum FileDescriptorType {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout]  7 |     NONE,
[INFO] [stdout]  8 |     PIPE,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]  9 |     INODE,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     DEVICE,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileType` is never used
[INFO] [stdout]   --> src/common/file.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum FileType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileStat` is never constructed
[INFO] [stdout]   --> src/common/file.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct FileStat {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `off`, `read_able`, and `writeable` are never read
[INFO] [stdout]   --> src/common/file.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct File {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 28 |     pub off: u32,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |     pub ref_cnt: u8,
[INFO] [stdout] 30 |     pub read_able: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 31 |     pub writeable: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `file_stat`, `file_read`, and `file_write` are never used
[INFO] [stdout]   --> src/common/file.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl File {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 37 |     // Get metadata about file f.
[INFO] [stdout] 38 |     pub fn file_stat(&self) -> Option<FileStat> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn file_read(&mut self, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn file_write(&mut self, len: u32, buf: &Vec<u8>) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `transfer_inode_stat_to_stat` and `transfer_stat_to_inode` are never used
[INFO] [stdout]    --> src/common/file.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl File {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn transfer_inode_stat_to_stat(inode_stat: inode::InodeStat) -> FileStat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn transfer_stat_to_inode(stat: FileStat) -> inode::InodeStat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_num` is never read
[INFO] [stdout]   --> src/common/file_table.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct FileTable {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub max_num: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]    --> src/compress/huffman.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct DecodeConfig {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub capacity: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `None` and `Huffman` are never constructed
[INFO] [stdout]  --> src/compress/compress.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum CompressType {
[INFO] [stdout]   |          ------------ variants in this enum
[INFO] [stdout] 6 |     None,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 7 |     Huffman,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CompressType` 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 `Proc` is never constructed
[INFO] [stdout]  --> src/fake_proc.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Proc {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `my_proc` is never used
[INFO] [stdout]   --> src/fake_proc.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn my_proc() -> Proc {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperStat` is never constructed
[INFO] [stdout]  --> src/super_stat.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SuperStat {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/super_stat.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl SuperStat {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new() -> SuperStat {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/lru_cache.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<T>> {
[INFO] [stdout]    |                ^^^^^^^^^                      ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<'_, T>> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/safe_linked_list.rs:95:23
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn peek_front(&self) -> Option<Ref<T>> {
[INFO] [stdout]    |                       ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn peek_front(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn peek_back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |                      ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn peek_back(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:107:27
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |                           ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/util/safe_linked_list.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stdout]     |                          ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 38 -         let _ = self.lock.lock();
[INFO] [stdout] 38 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 59 -         let _ = self.lock.lock();
[INFO] [stdout] 59 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 82 -         let _ = self.lock.lock();
[INFO] [stdout] 82 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/inode/inode_manager.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 91 -         let _ = self.lock.lock();
[INFO] [stdout] 91 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 32 -         let _ = self.lock.lock();
[INFO] [stdout] 32 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 44 -         let _ = self.lock.lock();
[INFO] [stdout] 44 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/common/file_table.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _ = self.lock.lock();
[INFO] [stdout]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _unused = self.lock.lock();
[INFO] [stdout]    |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 51 -         let _ = self.lock.lock();
[INFO] [stdout] 51 +         drop(self.lock.lock());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/compress/huffman.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn iter(&self) -> Iter<'_, char, Weight> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.37s
[INFO] running `Command { std: "docker" "inspect" "9eeca85c714b6f741ce0318526affcbb15bee9a387f24026051b689ae4a60e12", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9eeca85c714b6f741ce0318526affcbb15bee9a387f24026051b689ae4a60e12", kill_on_drop: false }`
[INFO] [stdout] 9eeca85c714b6f741ce0318526affcbb15bee9a387f24026051b689ae4a60e12
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7b37f7f9f5767b1da7968398fa820fce0e4eda9502270c55f4c27f99abc6146f
[INFO] running `Command { std: "docker" "start" "-a" "7b37f7f9f5767b1da7968398fa820fce0e4eda9502270c55f4c27f99abc6146f", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::compress::compress`
[INFO] [stderr]  --> src/inode/inode.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::compress::compress;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]    --> src/inode/inode.rs:510:9
[INFO] [stderr]     |
[INFO] [stderr] 510 |     use std::sync::Arc;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:35:28
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] {
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:48:29
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) {
[INFO] [stderr]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:53:29
[INFO] [stderr]    |
[INFO] [stderr] 53 |     pub fn erase(&mut self, dev: u8, block_no: u32) {
[INFO] [stderr]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_dev`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `metadata`
[INFO] [stderr]   --> src/raw/raw_node.rs:88:13
[INFO] [stderr]    |
[INFO] [stderr] 88 |         let metadata = [0u8; 100];
[INFO] [stderr]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `buf`
[INFO] [stderr]   --> src/raw/raw_node.rs:87:16
[INFO] [stderr]    |
[INFO] [stderr] 87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stderr]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:356:13
[INFO] [stderr]     |
[INFO] [stderr] 356 |         let mut address = block_no * 128;
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:433:29
[INFO] [stderr]     |
[INFO] [stderr] 433 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stderr]     |                             ----^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:446:29
[INFO] [stderr]     |
[INFO] [stderr] 446 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stderr]     |                             ----^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:451:29
[INFO] [stderr]     |
[INFO] [stderr] 451 |                         let mut entry = inode.data.get_mut(event.index as usize).unwrap();
[INFO] [stderr]     |                             ----^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `block_no`
[INFO] [stderr]   --> src/driver/disk.rs:14:29
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] {
[INFO] [stderr]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `address`
[INFO] [stderr]   --> src/driver/disk.rs:18:34
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stderr]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]   --> src/driver/disk.rs:18:48
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) {
[INFO] [stderr]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `block_no`
[INFO] [stderr]   --> src/driver/disk.rs:21:34
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn disk_erase(&mut self, block_no: u32) {
[INFO] [stderr]    |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `inode`
[INFO] [stderr]    --> src/inode/inode_test.rs:206:13
[INFO] [stderr]     |
[INFO] [stderr] 206 |         let inode = self.core.as_mut().unwrap().borrow_mut().dispose_event_group(event_group).unwrap();
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_inode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `huffman`
[INFO] [stderr]   --> src/compress/compress.rs:21:13
[INFO] [stderr]    |
[INFO] [stderr] 21 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `huffman`
[INFO] [stderr]   --> src/compress/compress.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let huffman = huffman::HuffmanCodec::new();
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_huffman`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `compress_type`
[INFO] [stderr]   --> src/compress/compress.rs:26:33
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn decode(bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compress_type`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/gc/gc_event.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub enum GCEvent {
[INFO] [stderr]    |          ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 17 |     None,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GCEvent` 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: field `size` is never read
[INFO] [stderr]  --> src/gc/block_table.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct BlockInfo {
[INFO] [stderr]   |            --------- field in this struct
[INFO] [stderr] 3 |     pub size: u32,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `BlockInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `address` is never read
[INFO] [stderr]  --> src/buf.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Buf {
[INFO] [stderr]   |            --- field in this struct
[INFO] [stderr] 6 |     pub address: u32,
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Buf` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `capacity` is never read
[INFO] [stderr]   --> src/buf.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct BufCache {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] 20 |     pub capacity: usize,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawData` is never constructed
[INFO] [stderr]  --> src/raw/raw_data.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct RawData {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get_page` are never used
[INFO] [stderr]   --> src/raw/raw_data.rs:8:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl RawData {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr]  8 |     pub fn new(data: Vec<u8>) -> RawData {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn get_page(&self, index: u32) -> Option<[u8; 4096]> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawFile` is never constructed
[INFO] [stderr]  --> src/raw/raw_file.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct RawFile {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/raw/raw_file.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl RawFile {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 14 |     pub fn new() -> RawFile {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `RawNodeType` is never used
[INFO] [stderr]  --> src/raw/raw_node.rs:1:10
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub enum RawNodeType {
[INFO] [stderr]   |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawNode` is never constructed
[INFO] [stderr]  --> src/raw/raw_node.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct RawNode {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawNodeNodeEntry` is never constructed
[INFO] [stderr]   --> src/raw/raw_node.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct RawNodeNodeEntry {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawNodeDataEntry` is never constructed
[INFO] [stderr]   --> src/raw/raw_node.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct RawNodeDataEntry {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NodeRegion` is never constructed
[INFO] [stderr]   --> src/raw/raw_node.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | struct NodeRegion {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/raw/raw_node.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 39 | impl NodeRegion {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 40 |     fn new(data: [u8; 3072],) -> NodeRegion {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DataRegion` is never constructed
[INFO] [stderr]   --> src/raw/raw_node.rs:60:8
[INFO] [stderr]    |
[INFO] [stderr] 60 | struct DataRegion {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/raw/raw_node.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | impl DataRegion {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 66 |     fn new(data: [u8; 3072]) -> DataRegion {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `decode` are never used
[INFO] [stderr]    --> src/raw/raw_node.rs:87:12
[INFO] [stderr]     |
[INFO] [stderr]  86 | impl RawNode {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  87 |     pub fn new(buf: [u8; 4096]) -> Option<RawNode> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 |     pub fn decode(&self) -> [u8; 4096] {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SuperBlock` is never constructed
[INFO] [stderr]  --> src/raw/raw_super.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct SuperBlock {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/raw/raw_super.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | impl SuperBlock {
[INFO] [stderr]   | --------------- associated function in this implementation
[INFO] [stderr] 6 |     fn new() -> SuperBlock {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `read_sb` is never used
[INFO] [stderr]   --> src/core/core_manager.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl CoreManager {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn read_sb(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `background_gc` is never used
[INFO] [stderr]    --> src/core/core_manager.rs:106:12
[INFO] [stderr]     |
[INFO] [stderr]  88 | impl CoreManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn background_gc(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `bit_end_op` is never used
[INFO] [stderr]    --> src/core/core_manager.rs:237:12
[INFO] [stderr]     |
[INFO] [stderr] 173 | impl CoreManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 237 |     pub fn bit_end_op(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `pit_end_op` is never used
[INFO] [stderr]    --> src/core/core_manager.rs:311:12
[INFO] [stderr]     |
[INFO] [stderr] 244 | impl CoreManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 311 |     pub fn pit_end_op(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `size` is never read
[INFO] [stderr]   --> src/util/array.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub struct Iter1<'a, T> {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 45 |     size: u32,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_size` and `contains_key` are never used
[INFO] [stderr]   --> src/util/lru_cache.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | impl <T: Copy> LRUCache<T> {
[INFO] [stderr]    | -------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn get_size(&self) -> usize {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn contains_key(&self, key: u32) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `ref_cnt` is never read
[INFO] [stderr]   --> src/inode/inode.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct InodeStat {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub ref_cnt: u8,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `lock` is never read
[INFO] [stderr]   --> src/inode/inode.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct Inode {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub lock: Mutex<bool>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `truncate_to_end` is never used
[INFO] [stderr]    --> src/inode/inode.rs:376:12
[INFO] [stderr]     |
[INFO] [stderr]  48 | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 376 |     pub fn truncate_to_end(&mut self, offset: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_stat` and `dup` are never used
[INFO] [stderr]    --> src/inode/inode.rs:382:12
[INFO] [stderr]     |
[INFO] [stderr] 381 | impl Inode {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] 382 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 417 |     pub fn dup(&mut self) -> bool {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `debug` is never used
[INFO] [stderr]    --> src/inode/inode.rs:500:12
[INFO] [stderr]     |
[INFO] [stderr] 441 | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 500 |     pub fn debug(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `size` and `capacity` are never read
[INFO] [stderr]  --> src/inode/inode_manager.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct InodeManager {
[INFO] [stderr]   |            ------------ fields in this struct
[INFO] [stderr] 7 |     pub size: usize,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr] 8 |     pub capacity: usize,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/inode/inode_event.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub enum InodeEvent {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 60 |     None,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `InodeEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `InodeFileType` is never used
[INFO] [stderr]  --> src/inode/inode_test.rs:8:10
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub enum InodeFileType {
[INFO] [stderr]   |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InodeStat` is never constructed
[INFO] [stderr]   --> src/inode/inode_test.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct InodeStat {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InodeEntry` is never constructed
[INFO] [stderr]   --> src/inode/inode_test.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct InodeEntry {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Inode` is never constructed
[INFO] [stderr]   --> src/inode/inode_test.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Inode {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `read_all`, `read`, and `write` are never used
[INFO] [stderr]    --> src/inode/inode_test.rs:51:12
[INFO] [stderr]     |
[INFO] [stderr]  50 | impl Inode {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr]  51 |     pub fn new() -> Inode {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  67 |     pub fn read_all(&mut self, buf: &mut Vec<u8>) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  71 |     pub fn read(&mut self, offset: u32, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn write(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_stat` is never used
[INFO] [stderr]    --> src/inode/inode_test.rs:213:12
[INFO] [stderr]     |
[INFO] [stderr] 212 | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] 213 |     pub fn get_stat(&self) -> InodeStat {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `read_decompress_entry`, `read_entry`, `update_by_another_inode`, and `copy_inode` are never used
[INFO] [stderr]    --> src/inode/inode_test.rs:228:12
[INFO] [stderr]     |
[INFO] [stderr] 227 | impl Inode {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] 228 |     pub fn read_decompress_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn read_entry(&mut self, entry: &InodeEntry, start: u32, end: u32) -> Vec<u8> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 268 |     pub fn update_by_another_inode(&mut self, inode: Inode) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 280 |     pub fn copy_inode(&self) -> Inode {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `name_i` is never used
[INFO] [stderr]   --> src/common/path.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub fn name_i(i_manager: &mut inode_manager::InodeManager, path: String) -> Option<inode_manager::InodeLink> {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `name_i_parent` is never used
[INFO] [stderr]   --> src/common/path.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn name_i_parent(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String) -> Option<inode_manager::InodeLink> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PIPE`, `INODE`, and `DEVICE` are never constructed
[INFO] [stderr]   --> src/common/file.rs:8:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum FileDescriptorType {
[INFO] [stderr]    |          ------------------ variants in this enum
[INFO] [stderr]  7 |     NONE,
[INFO] [stderr]  8 |     PIPE,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]  9 |     INODE,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 10 |     DEVICE,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `FileType` is never used
[INFO] [stderr]   --> src/common/file.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum FileType {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FileStat` is never constructed
[INFO] [stderr]   --> src/common/file.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct FileStat {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `off`, `read_able`, and `writeable` are never read
[INFO] [stderr]   --> src/common/file.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct File {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr] 28 |     pub off: u32,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 29 |     pub ref_cnt: u8,
[INFO] [stderr] 30 |     pub read_able: u8,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 31 |     pub writeable: u8,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `file_stat`, `file_read`, and `file_write` are never used
[INFO] [stderr]   --> src/common/file.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | impl File {
[INFO] [stderr]    | --------- methods in this implementation
[INFO] [stderr] 37 |     // Get metadata about file f.
[INFO] [stderr] 38 |     pub fn file_stat(&self) -> Option<FileStat> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn file_read(&mut self, len: u32, buf: &mut Vec<u8>) -> i32 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn file_write(&mut self, len: u32, buf: &Vec<u8>) -> i32 {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `transfer_inode_stat_to_stat` and `transfer_stat_to_inode` are never used
[INFO] [stderr]    --> src/common/file.rs:93:12
[INFO] [stderr]     |
[INFO] [stderr]  81 | impl File {
[INFO] [stderr]     | --------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  93 |     pub fn transfer_inode_stat_to_stat(inode_stat: inode::InodeStat) -> FileStat {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn transfer_stat_to_inode(stat: FileStat) -> inode::InodeStat {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_num` is never read
[INFO] [stderr]   --> src/common/file_table.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub struct FileTable {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub max_num: u32,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `capacity` is never read
[INFO] [stderr]    --> src/compress/huffman.rs:228:9
[INFO] [stderr]     |
[INFO] [stderr] 225 | pub struct DecodeConfig {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 228 |     pub capacity: usize,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `None` and `Huffman` are never constructed
[INFO] [stderr]  --> src/compress/compress.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum CompressType {
[INFO] [stderr]   |          ------------ variants in this enum
[INFO] [stderr] 6 |     None,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 7 |     Huffman,
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `CompressType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Proc` is never constructed
[INFO] [stderr]  --> src/fake_proc.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Proc {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `my_proc` is never used
[INFO] [stderr]   --> src/fake_proc.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn my_proc() -> Proc {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SuperStat` is never constructed
[INFO] [stderr]  --> src/super_stat.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct SuperStat {
[INFO] [stderr]   |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/super_stat.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | impl SuperStat {
[INFO] [stderr]   | -------------- associated function in this implementation
[INFO] [stderr] 6 |     pub fn new() -> SuperStat {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/util/lru_cache.rs:58:16
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<T>> {
[INFO] [stderr]    |                ^^^^^^^^^                      ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |
[INFO] [stderr]    |                the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn get(&mut self, key: u32) -> Option<Ref<'_, T>> {
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/util/safe_linked_list.rs:95:23
[INFO] [stderr]    |
[INFO] [stderr] 95 |     pub fn peek_front(&self) -> Option<Ref<T>> {
[INFO] [stderr]    |                       ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 95 |     pub fn peek_front(&self) -> Option<Ref<'_, T>> {
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/util/safe_linked_list.rs:101:22
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn peek_back(&self) -> Option<Ref<T>> {
[INFO] [stderr]     |                      ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                      |
[INFO] [stderr]     |                      the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn peek_back(&self) -> Option<Ref<'_, T>> {
[INFO] [stderr]     |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/util/safe_linked_list.rs:107:27
[INFO] [stderr]     |
[INFO] [stderr] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stderr]     |                           ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 107 |     pub fn peek_front_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/util/safe_linked_list.rs:113:26
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<T>> {
[INFO] [stderr]     |                          ^^^^^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn peek_back_mut(&mut self) -> Option<RefMut<'_, T>> {
[INFO] [stderr]     |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/inode/inode_manager.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 38 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 38 -         let _ = self.lock.lock();
[INFO] [stderr] 38 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/inode/inode_manager.rs:59:13
[INFO] [stderr]    |
[INFO] [stderr] 59 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 59 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 59 -         let _ = self.lock.lock();
[INFO] [stderr] 59 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/inode/inode_manager.rs:82:13
[INFO] [stderr]    |
[INFO] [stderr] 82 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 82 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 82 -         let _ = self.lock.lock();
[INFO] [stderr] 82 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/inode/inode_manager.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 91 -         let _ = self.lock.lock();
[INFO] [stderr] 91 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/common/file_table.rs:32:13
[INFO] [stderr]    |
[INFO] [stderr] 32 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 32 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 32 -         let _ = self.lock.lock();
[INFO] [stderr] 32 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/common/file_table.rs:44:13
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 44 -         let _ = self.lock.lock();
[INFO] [stderr] 44 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/common/file_table.rs:51:13
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let _ = self.lock.lock();
[INFO] [stderr]    |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let _unused = self.lock.lock();
[INFO] [stderr]    |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 51 -         let _ = self.lock.lock();
[INFO] [stderr] 51 +         drop(self.lock.lock());
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/compress/huffman.rs:96:17
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stderr]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub fn iter(&self) -> Iter<'_, char, Weight> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: `sffs` (bin "sffs" test) generated 86 warnings (run `cargo fix --bin "sffs" --tests` to apply 19 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sffs-fedeccd89a736dc5)
[INFO] [stdout] 
[INFO] [stdout] running 46 tests
[INFO] [stdout] test common::directory::test::test_directory_parser ... ok
[INFO] [stdout] test common::path::test::test_skip_elem ... ok
[INFO] [stdout] test compress::snappy::test::basics ... ok
[INFO] [stdout] test buf::test::basics ... ok
[INFO] [stdout] test core::core_manager::test::basics ... ok
[INFO] [stdout] test compress::huffman::test::basics ... ok
[INFO] [stdout] test compress::compress::test::basics ... ok
[INFO] [stdout] test core::core_manager::test::inode ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin sffs`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/sffs-fedeccd89a736dc5` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "7b37f7f9f5767b1da7968398fa820fce0e4eda9502270c55f4c27f99abc6146f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b37f7f9f5767b1da7968398fa820fce0e4eda9502270c55f4c27f99abc6146f", kill_on_drop: false }`
[INFO] [stdout] 7b37f7f9f5767b1da7968398fa820fce0e4eda9502270c55f4c27f99abc6146f
