[INFO] cloning repository https://github.com/WondFS/WondFS-fuse
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WondFS/WondFS-fuse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c112a26239b63b5dc48ba93ad01a87a1bbcfe233
[INFO] testing WondFS/WondFS-fuse against 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/WondFS/WondFS-fuse on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/WondFS/WondFS-fuse
[INFO] finished tweaking git repo https://github.com/WondFS/WondFS-fuse
[INFO] tweaked toml for git repo https://github.com/WondFS/WondFS-fuse written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/WondFS/WondFS-fuse already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fuser v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 825fc5440667097dbbec0e9530f5c8a9a4fc1d0eddcdc5e4d81f7c8e83912f0e
[INFO] running `Command { std: "docker" "start" "-a" "825fc5440667097dbbec0e9530f5c8a9a4fc1d0eddcdc5e4d81f7c8e83912f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "825fc5440667097dbbec0e9530f5c8a9a4fc1d0eddcdc5e4d81f7c8e83912f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "825fc5440667097dbbec0e9530f5c8a9a4fc1d0eddcdc5e4d81f7c8e83912f0e", kill_on_drop: false }`
[INFO] [stdout] 825fc5440667097dbbec0e9530f5c8a9a4fc1d0eddcdc5e4d81f7c8e83912f0e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 07c618beedb3075c1c1dfea7330231cf82cb1eb80d55b834baba9c851af78c3e
[INFO] running `Command { std: "docker" "start" "-a" "07c618beedb3075c1c1dfea7330231cf82cb1eb80d55b834baba9c851af78c3e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.125
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling snap v1.0.5
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling crc-catalog v2.1.0
[INFO] [stderr]    Compiling fuser v0.7.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling users v0.11.0
[INFO] [stderr]    Compiling page_size v0.4.2
[INFO] [stderr]    Compiling regex v1.5.5
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling WondFS-fuse v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Filesystem`
[INFO] [stdout]  --> src/main.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::ecc`
[INFO] [stdout]  --> src/tl/check_center.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::ecc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/driver/disk_manager.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/util/crc32.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![no_std]
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:56:29
[INFO] [stdout]    |
[INFO] [stdout] 56 |     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:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |     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: `mode`
[INFO] [stdout]    --> src/fuse/fuse.rs:156:21
[INFO] [stdout]     |
[INFO] [stdout] 156 |         if let Some(mode) = _mode {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:683:29
[INFO] [stdout]     |
[INFO] [stdout] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:696:29
[INFO] [stdout]     |
[INFO] [stdout] 696 |                         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:701:29
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         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:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     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:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     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: value assigned to `space` is never read
[INFO] [stdout]    --> src/compress/huffman.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut space = 0u8;
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/tl/tl.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl TranslationLayer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_direct` is never used
[INFO] [stdout]    --> src/tl/tl.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl TranslationLayer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Used` and `Unused` are never constructed
[INFO] [stdout]   --> src/tl/tl_helper.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum BlockType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Used,         // 被用作坏块映射
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     Unused,       // 未被使用的
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse` is never used
[INFO] [stdout]   --> src/tl/tl_helper.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum GCEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stdout]  --> src/gc/gc_define.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GCStrategy {
[INFO] [stdout]   |          ---------- variants in this enum
[INFO] [stdout] 6 |     Forward,          // 前台GC
[INFO] [stdout] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_page` is never used
[INFO] [stdout]   --> src/gc/gc_manager.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl GCManager {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_page(&self, address: u32) -> PageUsedStatus {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_block_info` is never used
[INFO] [stdout]   --> src/gc/block_table.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl BlockTable {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_driect` is never used
[INFO] [stdout]   --> src/buf.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/buf.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]    --> src/buf.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct Buf {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 142 |     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: function `get_groups` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_gid` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_mode` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_read` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_write` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_access` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn check_access(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/bit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/bit.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl BIT {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51  |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn get_page(&self, address: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get_last_erase_time(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn get_erase_count(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_erase_count(&mut self, block_no: u32, count: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_average_age(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn set_average_age(&mut self, block_no: u32, age: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn get_block(&self, block_no: u32) -> Option<[bool; 128]> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn set_block(&mut self, block_no: u32, status: [bool; 128]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/core/pit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/core/pit.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/journal.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JournalType` is never used
[INFO] [stdout]   --> src/core/journal.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum JournalType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGICNUMBER` is never used
[INFO] [stdout]  --> src/core/super_stat.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stdout]   --> src/core/super_stat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SuperStat {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     magic_code: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     reserved_block_num: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     page_size: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/super_stat.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout] 25  | impl SuperStat {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inode` and `delete_inode` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95  |     pub fn update_inode(&mut self, inode: inode::Inode) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn delete_inode(&mut self, ino: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_gc` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_last_erase_time`, `set_erase_count`, and `set_average_age` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn set_erase_count(&mut self, block_no: u32, count: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn set_average_age(&mut self, block_no: u32, age: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `truncate_array_1_to_array_2` and `truncate_array_2_to_array_1` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:845:12
[INFO] [stdout]     |
[INFO] [stdout] 746 | impl CoreManager {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 845 |     pub fn truncate_array_1_to_array_2(array: array::Array1<[u8; 4096]>) -> array::Array2::<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 859 |     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: fields `crc` and `value` are never read
[INFO] [stdout]   --> src/util/crc32.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Digest<'a, W: Width> {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 13 |     crc: &'a Crc<W>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 14 |     value: W,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Digest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `digest` and `digest_with_initial` are never used
[INFO] [stdout]   --> src/util/crc32.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Crc<u32> {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn digest(&self) -> Digest<u32> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub const fn digest_with_initial(&self, initial: u32) -> Digest<u32> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `finalize` are never used
[INFO] [stdout]   --> src/util/crc32.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl<'a> Digest<'a, u32> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 85 |     const fn new(crc: &'a Crc<u32>, value: u32) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn update(&mut self, bytes: &[u8]) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub const fn finalize(self) -> u32 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stdout]   --> src/util/array.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl<T: Copy> Array1<T> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/util/array.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl<T: Copy> Array2<T> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 82  |     pub fn new(row: u32, column: u32) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn len(&self) -> u32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 92  |     pub fn size(&self) -> [u32; 2] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn init(&mut self, value: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get(&self, row: u32, column: u32) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_index(&self, index: u32) -> T {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set(&mut self, row: u32, column: u32, value: T) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_index(&mut self, index: u32, value: T) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn iter(&self) -> Iter2<'_, T> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn dup(&self) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/util/array.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl<'a, T: Copy> Iter2<'a, T> {
[INFO] [stdout]     | ------------------------------ associated function in this implementation
[INFO] [stdout] 139 |     fn new(array: &'a s_array::SArray<T>) -> Iter2<'a, T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/util/s_array.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl<T: Copy> SArray<T> {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> Vec<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: 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] 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: 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] 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: method `debug` is never used
[INFO] [stdout]    --> src/inode/inode.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert` and `dup` are never used
[INFO] [stdout]    --> src/inode/inode.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn insert(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `capacity` are never read
[INFO] [stdout]   --> src/inode/inode_manager.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InodeManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 15 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl InodeManager {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `i_dup` is never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl InodeManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn i_dup(&mut self, inode: &InodeLink) -> InodeLink {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InodeEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 62 |     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: 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: variants `NONE`, `PIPE`, `INODE`, and `DEVICE` are never constructed
[INFO] [stdout]   --> src/common/file.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum FileDescriptorType {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 7  |     NONE,
[INFO] [stdout]    |     ^^^^
[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: 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: 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: associated function `new` is never used
[INFO] [stdout]   --> src/compress/snappy.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Snappy {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 10 |     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:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | 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:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Weight = u32;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanTree` is never constructed
[INFO] [stdout]   --> src/compress/huffman.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | 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:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl HuffmanTree {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn build(char_weight: CharWeightMap) -> RefHuffmanTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     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:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | 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:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl CharWeightMap {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 78 |     pub fn build() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build` and `tree_dfs` are never used
[INFO] [stdout]    --> src/compress/huffman.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl HuffmanBinaryMap {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] 107 |     pub fn build(huffman_tree: RefHuffmanTree) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn tree_dfs(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/compress/huffman.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl HuffmanCodec {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 155 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build` is never used
[INFO] [stdout]    --> src/compress/huffman.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl DecodeConfig {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 244 |     pub fn build(source: &String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Huffman`, `Snappy`, and `None` 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 |     Huffman,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     Snappy,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 8 |     None,
[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 `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: multiple associated items are never used
[INFO] [stdout]    --> src/compress/compress.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout] 23  | impl CompressManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 24  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33  |     pub fn encode(&mut self, bytes: &[u8]) -> (Vec<u8>, CompressType) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57  |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn decode(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn choose_compress_type_except(&self, except: &Vec<CompressType>) -> CompressType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95  |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn judge_encode_effect(o_data: &[u8], data: &Vec<u8>, compress_type: CompressType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/write_buf.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl WriteCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/write_buf.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl WriteBuf {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 95 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4.39s
[INFO] running `Command { std: "docker" "inspect" "07c618beedb3075c1c1dfea7330231cf82cb1eb80d55b834baba9c851af78c3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07c618beedb3075c1c1dfea7330231cf82cb1eb80d55b834baba9c851af78c3e", kill_on_drop: false }`
[INFO] [stdout] 07c618beedb3075c1c1dfea7330231cf82cb1eb80d55b834baba9c851af78c3e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fa0a6d245bdfcc546de3db7beee84c4248466acb151c3204dcb2d926f570ee73
[INFO] running `Command { std: "docker" "start" "-a" "fa0a6d245bdfcc546de3db7beee84c4248466acb151c3204dcb2d926f570ee73", kill_on_drop: false }`
[INFO] [stderr]    Compiling WondFS-fuse v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Filesystem`
[INFO] [stdout]  --> src/main.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::ecc`
[INFO] [stdout]  --> src/tl/check_center.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::ecc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/util/crc32.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![no_std]
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:56:29
[INFO] [stdout]    |
[INFO] [stdout] 56 |     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:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |     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: `mode`
[INFO] [stdout]    --> src/fuse/fuse.rs:156:21
[INFO] [stdout]     |
[INFO] [stdout] 156 |         if let Some(mode) = _mode {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:683:29
[INFO] [stdout]     |
[INFO] [stdout] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:696:29
[INFO] [stdout]     |
[INFO] [stdout] 696 |                         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:701:29
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         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:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     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:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     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: value assigned to `space` is never read
[INFO] [stdout]    --> src/compress/huffman.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut space = 0u8;
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/tl/tl.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl TranslationLayer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_direct` is never used
[INFO] [stdout]    --> src/tl/tl.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl TranslationLayer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Used` and `Unused` are never constructed
[INFO] [stdout]   --> src/tl/tl_helper.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum BlockType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Used,         // 被用作坏块映射
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     Unused,       // 未被使用的
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse` is never used
[INFO] [stdout]   --> src/tl/tl_helper.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum GCEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stdout]  --> src/gc/gc_define.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GCStrategy {
[INFO] [stdout]   |          ---------- variants in this enum
[INFO] [stdout] 6 |     Forward,          // 前台GC
[INFO] [stdout] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_block_info` is never used
[INFO] [stdout]   --> src/gc/block_table.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl BlockTable {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_driect` is never used
[INFO] [stdout]   --> src/buf.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/buf.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]    --> src/buf.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct Buf {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 142 |     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: function `get_groups` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_gid` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_mode` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_read` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_write` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_access` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn check_access(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/bit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_bit_segment` and `set_bit_segment` are never used
[INFO] [stdout]   --> src/core/bit.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl BIT {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/core/pit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/core/pit.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/journal.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JournalType` is never used
[INFO] [stdout]   --> src/core/journal.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum JournalType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGICNUMBER` is never used
[INFO] [stdout]  --> src/core/super_stat.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stdout]   --> src/core/super_stat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SuperStat {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     magic_code: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     reserved_block_num: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     page_size: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/super_stat.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout] 25  | impl SuperStat {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_gc` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stdout]   --> src/util/array.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl<T: Copy> Array1<T> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[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: method `debug` is never used
[INFO] [stdout]    --> src/inode/inode.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dup` is never used
[INFO] [stdout]    --> src/inode/inode.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `capacity` are never read
[INFO] [stdout]   --> src/inode/inode_manager.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InodeManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 15 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl InodeManager {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InodeEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 62 |     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: 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: 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: methods `encode_with_type` and `get_compress_type_score` are never used
[INFO] [stdout]   --> src/compress/compress.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl CompressManager {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/write_buf.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl WriteCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/write_buf.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl WriteBuf {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 62 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.78s
[INFO] running `Command { std: "docker" "inspect" "fa0a6d245bdfcc546de3db7beee84c4248466acb151c3204dcb2d926f570ee73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fa0a6d245bdfcc546de3db7beee84c4248466acb151c3204dcb2d926f570ee73", kill_on_drop: false }`
[INFO] [stdout] fa0a6d245bdfcc546de3db7beee84c4248466acb151c3204dcb2d926f570ee73
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 27ee433186be138f1f85bb5bc5ce94527ad207e6a9fb52967525470d56b8aad1
[INFO] running `Command { std: "docker" "start" "-a" "27ee433186be138f1f85bb5bc5ce94527ad207e6a9fb52967525470d56b8aad1", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Filesystem`
[INFO] [stderr]  --> src/main.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::ecc`
[INFO] [stderr]  --> src/tl/check_center.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::util::ecc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate-level attribute should be in the root module
[INFO] [stderr]  --> src/util/crc32.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![no_std]
[INFO] [stderr]   | ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:36:28
[INFO] [stderr]    |
[INFO] [stderr] 36 |     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)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:56:29
[INFO] [stderr]    |
[INFO] [stderr] 56 |     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:68:42
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stderr]    |
[INFO] [stderr] 86 |     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: `mode`
[INFO] [stderr]    --> src/fuse/fuse.rs:156:21
[INFO] [stderr]     |
[INFO] [stderr] 156 |         if let Some(mode) = _mode {
[INFO] [stderr]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:683:29
[INFO] [stderr]     |
[INFO] [stderr] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:696:29
[INFO] [stderr]     |
[INFO] [stderr] 696 |                         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:701:29
[INFO] [stderr]     |
[INFO] [stderr] 701 |                         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:24:29
[INFO] [stderr]    |
[INFO] [stderr] 24 |     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:34:34
[INFO] [stderr]    |
[INFO] [stderr] 34 |     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:34:48
[INFO] [stderr]    |
[INFO] [stderr] 34 |     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:43:34
[INFO] [stderr]    |
[INFO] [stderr] 43 |     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: value assigned to `space` is never read
[INFO] [stderr]    --> src/compress/huffman.rs:224:17
[INFO] [stderr]     |
[INFO] [stderr] 224 |         let mut space = 0u8;
[INFO] [stderr]     |                 ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_disk_speed` is never used
[INFO] [stderr]   --> src/tl/tl.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl TranslationLayer {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `write_block_direct` is never used
[INFO] [stderr]    --> src/tl/tl.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr] 81  | impl TranslationLayer {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stderr]  --> src/tl/tl_helper.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stderr]  --> src/tl/tl_helper.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Used` and `Unused` are never constructed
[INFO] [stderr]   --> src/tl/tl_helper.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 7  | pub enum BlockType {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 10 |     Used,         // 被用作坏块映射
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 11 |     Unused,       // 未被使用的
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reverse` is never used
[INFO] [stderr]   --> src/tl/tl_helper.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/gc/gc_event.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum GCEvent {
[INFO] [stderr]    |          ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 19 |     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] 
[INFO] [stderr] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stderr]  --> src/gc/gc_define.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum GCStrategy {
[INFO] [stderr]   |          ---------- variants in this enum
[INFO] [stderr] 6 |     Forward,          // 前台GC
[INFO] [stderr] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_block_info` is never used
[INFO] [stderr]   --> src/gc/block_table.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl BlockTable {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `write_block_driect` is never used
[INFO] [stderr]   --> src/buf.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl BufCache {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_disk_speed` is never used
[INFO] [stderr]   --> src/buf.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 97 | impl BufCache {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `address` is never read
[INFO] [stderr]    --> src/buf.rs:142:5
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub struct Buf {
[INFO] [stderr]     |            --- field in this struct
[INFO] [stderr] 142 |     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: function `get_groups` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `creation_gid` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `creation_mode` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_file_handle_read` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_file_handle_write` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_access` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:56:8
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn check_access(
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stderr]  --> src/core/bit.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_bit_segment` and `set_bit_segment` are never used
[INFO] [stderr]   --> src/core/bit.rs:51:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl BIT {
[INFO] [stderr]    | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stderr]  --> src/core/pit.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stderr]  --> src/core/pit.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stderr]  --> src/core/journal.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `JournalType` is never used
[INFO] [stderr]   --> src/core/journal.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum JournalType {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGICNUMBER` is never used
[INFO] [stderr]  --> src/core/super_stat.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stderr]   |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stderr]   --> src/core/super_stat.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct SuperStat {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 11 |     magic_code: u32,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     reserved_block_num: u32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 20 |     page_size: u32,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/core/super_stat.rs:42:12
[INFO] [stderr]     |
[INFO] [stderr] 25  | impl SuperStat {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `background_gc` is never used
[INFO] [stderr]    --> src/core/core_manager.rs:151:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl CoreManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 151 |     pub fn background_gc(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stderr]   --> src/util/array.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 8  | impl<T: Copy> Array1<T> {
[INFO] [stderr]    | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[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: method `debug` is never used
[INFO] [stderr]    --> src/inode/inode.rs:101:12
[INFO] [stderr]     |
[INFO] [stderr] 62  | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn debug(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `dup` is never used
[INFO] [stderr]    --> src/inode/inode.rs:517:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `size` and `capacity` are never read
[INFO] [stderr]   --> src/inode/inode_manager.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct InodeManager {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 15 |     size: usize,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 16 |     capacity: usize,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stderr]   --> src/inode/inode_manager.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl InodeManager {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/inode/inode_event.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub enum InodeEvent {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 62 |     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: 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: 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: methods `encode_with_type` and `get_compress_type_score` are never used
[INFO] [stderr]   --> src/compress/compress.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl CompressManager {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_size` is never used
[INFO] [stderr]   --> src/write_buf.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl WriteCache {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/write_buf.rs:134:8
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl WriteBuf {
[INFO] [stderr]     | ------------- associated function in this implementation
[INFO] [stderr] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `WondFS-fuse` (bin "WondFS-fuse" test) generated 62 warnings (run `cargo fix --bin "WondFS-fuse" --tests` to apply 14 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/WondFS_fuse-32ffe1805a3d6851)
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test common::directory::test::test_directory_parser ... ok
[INFO] [stdout] test common::path::test::test_skip_elem ... ok
[INFO] [stdout] test core::core_manager::test::basics ... ok
[INFO] [stdout] test core::core_manager::test::inode ... ok
[INFO] [stdout] test compress::snappy::test::basics ... ok
[INFO] [stdout] test compress::compress::test::basics ... ok
[INFO] [stdout] test core::vam::test::basics ... ok
[INFO] [stdout] test compress::huffman::test::basics ... ok
[INFO] [stderr] 
[INFO] [stderr] thread 'driver::fake_disk::test::basics' has overflowed its stack
[INFO] [stderr] fatal runtime error: stack overflow
[INFO] [stderr] error: test failed, to rerun pass `--bin WondFS-fuse`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/WondFS_fuse-32ffe1805a3d6851` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "27ee433186be138f1f85bb5bc5ce94527ad207e6a9fb52967525470d56b8aad1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27ee433186be138f1f85bb5bc5ce94527ad207e6a9fb52967525470d56b8aad1", kill_on_drop: false }`
[INFO] [stdout] 27ee433186be138f1f85bb5bc5ce94527ad207e6a9fb52967525470d56b8aad1
[INFO] testing WondFS/WondFS-fuse against beta-2023-12-22 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/WondFS/WondFS-fuse on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/WondFS/WondFS-fuse
[INFO] finished tweaking git repo https://github.com/WondFS/WondFS-fuse
[INFO] tweaked toml for git repo https://github.com/WondFS/WondFS-fuse written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/WondFS/WondFS-fuse 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-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 871b956c5fc224d22ecd1ddd0b97a9b7abdaee3b5acd16b1ffe6f2f0e53d4d32
[INFO] running `Command { std: "docker" "start" "-a" "871b956c5fc224d22ecd1ddd0b97a9b7abdaee3b5acd16b1ffe6f2f0e53d4d32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "871b956c5fc224d22ecd1ddd0b97a9b7abdaee3b5acd16b1ffe6f2f0e53d4d32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "871b956c5fc224d22ecd1ddd0b97a9b7abdaee3b5acd16b1ffe6f2f0e53d4d32", kill_on_drop: false }`
[INFO] [stdout] 871b956c5fc224d22ecd1ddd0b97a9b7abdaee3b5acd16b1ffe6f2f0e53d4d32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 097801bb73c1dc46a1111b3e8594eb3fe034431c0eddc80a69f5bc44c9fc04f4
[INFO] running `Command { std: "docker" "start" "-a" "097801bb73c1dc46a1111b3e8594eb3fe034431c0eddc80a69f5bc44c9fc04f4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.125
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling snap v1.0.5
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling crc-catalog v2.1.0
[INFO] [stderr]    Compiling fuser v0.7.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling page_size v0.4.2
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling users v0.11.0
[INFO] [stderr]    Compiling regex v1.5.5
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling WondFS-fuse v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Filesystem`
[INFO] [stdout]  --> src/main.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::ecc`
[INFO] [stdout]  --> src/tl/check_center.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::ecc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/driver/disk_manager.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/util/crc32.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![no_std]
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:56:29
[INFO] [stdout]    |
[INFO] [stdout] 56 |     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:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |     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: `mode`
[INFO] [stdout]    --> src/fuse/fuse.rs:156:21
[INFO] [stdout]     |
[INFO] [stdout] 156 |         if let Some(mode) = _mode {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:683:29
[INFO] [stdout]     |
[INFO] [stdout] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:696:29
[INFO] [stdout]     |
[INFO] [stdout] 696 |                         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:701:29
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         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:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     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:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     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: value assigned to `space` is never read
[INFO] [stdout]    --> src/compress/huffman.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut space = 0u8;
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/tl/tl.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl TranslationLayer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_direct` is never used
[INFO] [stdout]    --> src/tl/tl.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl TranslationLayer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Used` and `Unused` are never constructed
[INFO] [stdout]   --> src/tl/tl_helper.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum BlockType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Used,         // 被用作坏块映射
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     Unused,       // 未被使用的
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse` is never used
[INFO] [stdout]   --> src/tl/tl_helper.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum GCEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stdout]  --> src/gc/gc_define.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GCStrategy {
[INFO] [stdout]   |          ---------- variants in this enum
[INFO] [stdout] 6 |     Forward,          // 前台GC
[INFO] [stdout] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_page` is never used
[INFO] [stdout]   --> src/gc/gc_manager.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl GCManager {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_page(&self, address: u32) -> PageUsedStatus {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_block_info` is never used
[INFO] [stdout]   --> src/gc/block_table.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl BlockTable {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_driect` is never used
[INFO] [stdout]   --> src/buf.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/buf.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]    --> src/buf.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct Buf {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 142 |     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: function `get_groups` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_gid` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_mode` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_read` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_write` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_access` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn check_access(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/bit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/bit.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl BIT {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51  |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn get_page(&self, address: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get_last_erase_time(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn get_erase_count(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_erase_count(&mut self, block_no: u32, count: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_average_age(&self, block_no: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn set_average_age(&mut self, block_no: u32, age: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn get_block(&self, block_no: u32) -> Option<[bool; 128]> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn set_block(&mut self, block_no: u32, status: [bool; 128]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/core/pit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/core/pit.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/journal.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JournalType` is never used
[INFO] [stdout]   --> src/core/journal.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum JournalType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGICNUMBER` is never used
[INFO] [stdout]  --> src/core/super_stat.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stdout]   --> src/core/super_stat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SuperStat {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     magic_code: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     reserved_block_num: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     page_size: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/super_stat.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout] 25  | impl SuperStat {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inode` and `delete_inode` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95  |     pub fn update_inode(&mut self, inode: inode::Inode) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn delete_inode(&mut self, ino: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_gc` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_last_erase_time`, `set_erase_count`, and `set_average_age` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl CoreManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn set_erase_count(&mut self, block_no: u32, count: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn set_average_age(&mut self, block_no: u32, age: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `truncate_array_1_to_array_2` and `truncate_array_2_to_array_1` are never used
[INFO] [stdout]    --> src/core/core_manager.rs:845:12
[INFO] [stdout]     |
[INFO] [stdout] 746 | impl CoreManager {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 845 |     pub fn truncate_array_1_to_array_2(array: array::Array1<[u8; 4096]>) -> array::Array2::<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 859 |     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: fields `crc` and `value` are never read
[INFO] [stdout]   --> src/util/crc32.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Digest<'a, W: Width> {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 13 |     crc: &'a Crc<W>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 14 |     value: W,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Digest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `digest` and `digest_with_initial` are never used
[INFO] [stdout]   --> src/util/crc32.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Crc<u32> {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn digest(&self) -> Digest<u32> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub const fn digest_with_initial(&self, initial: u32) -> Digest<u32> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `finalize` are never used
[INFO] [stdout]   --> src/util/crc32.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl<'a> Digest<'a, u32> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 85 |     const fn new(crc: &'a Crc<u32>, value: u32) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn update(&mut self, bytes: &[u8]) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub const fn finalize(self) -> u32 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stdout]   --> src/util/array.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl<T: Copy> Array1<T> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/util/array.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl<T: Copy> Array2<T> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 82  |     pub fn new(row: u32, column: u32) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn len(&self) -> u32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 92  |     pub fn size(&self) -> [u32; 2] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn init(&mut self, value: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get(&self, row: u32, column: u32) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_index(&self, index: u32) -> T {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set(&mut self, row: u32, column: u32, value: T) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_index(&mut self, index: u32, value: T) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn iter(&self) -> Iter2<'_, T> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn dup(&self) -> Array2<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/util/array.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl<'a, T: Copy> Iter2<'a, T> {
[INFO] [stdout]     | ------------------------------ associated function in this implementation
[INFO] [stdout] 139 |     fn new(array: &'a s_array::SArray<T>) -> Iter2<'a, T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/util/s_array.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl<T: Copy> SArray<T> {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> Vec<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: 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] 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: 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] 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: method `debug` is never used
[INFO] [stdout]    --> src/inode/inode.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert` and `dup` are never used
[INFO] [stdout]    --> src/inode/inode.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Inode {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn insert(&mut self, offset: u32, len: u32, buf: &Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `capacity` are never read
[INFO] [stdout]   --> src/inode/inode_manager.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InodeManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 15 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl InodeManager {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `i_dup` is never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl InodeManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn i_dup(&mut self, inode: &InodeLink) -> InodeLink {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InodeEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 62 |     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: 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: variants `NONE`, `PIPE`, `INODE`, and `DEVICE` are never constructed
[INFO] [stdout]   --> src/common/file.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum FileDescriptorType {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 7  |     NONE,
[INFO] [stdout]    |     ^^^^
[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: 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: 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: associated function `new` is never used
[INFO] [stdout]   --> src/compress/snappy.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Snappy {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 10 |     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:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | 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:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Weight = u32;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanTree` is never constructed
[INFO] [stdout]   --> src/compress/huffman.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | 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:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl HuffmanTree {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn build(char_weight: CharWeightMap) -> RefHuffmanTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     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:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | 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:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl CharWeightMap {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 78 |     pub fn build() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn iter(&self) -> Iter<char, Weight> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build` and `tree_dfs` are never used
[INFO] [stdout]    --> src/compress/huffman.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl HuffmanBinaryMap {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] 107 |     pub fn build(huffman_tree: RefHuffmanTree) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn tree_dfs(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/compress/huffman.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl HuffmanCodec {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 155 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build` is never used
[INFO] [stdout]    --> src/compress/huffman.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl DecodeConfig {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 244 |     pub fn build(source: &String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Huffman`, `Snappy`, and `None` 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 |     Huffman,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     Snappy,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 8 |     None,
[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 `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: multiple associated items are never used
[INFO] [stdout]    --> src/compress/compress.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout] 23  | impl CompressManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 24  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33  |     pub fn encode(&mut self, bytes: &[u8]) -> (Vec<u8>, CompressType) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57  |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn decode(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn choose_compress_type_except(&self, except: &Vec<CompressType>) -> CompressType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95  |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn judge_encode_effect(o_data: &[u8], data: &Vec<u8>, compress_type: CompressType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/write_buf.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl WriteCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/write_buf.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl WriteBuf {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 95 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4.09s
[INFO] running `Command { std: "docker" "inspect" "097801bb73c1dc46a1111b3e8594eb3fe034431c0eddc80a69f5bc44c9fc04f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "097801bb73c1dc46a1111b3e8594eb3fe034431c0eddc80a69f5bc44c9fc04f4", kill_on_drop: false }`
[INFO] [stdout] 097801bb73c1dc46a1111b3e8594eb3fe034431c0eddc80a69f5bc44c9fc04f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0d3254c93be0db9578a338dc9cc3c1f5a482150e04bee2bb3e57c46c39e46fc7
[INFO] running `Command { std: "docker" "start" "-a" "0d3254c93be0db9578a338dc9cc3c1f5a482150e04bee2bb3e57c46c39e46fc7", kill_on_drop: false }`
[INFO] [stderr]    Compiling WondFS-fuse v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Filesystem`
[INFO] [stdout]  --> src/main.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::ecc`
[INFO] [stdout]  --> src/tl/check_center.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::ecc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/util/crc32.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![no_std]
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dev`
[INFO] [stdout]   --> src/buf.rs:56:29
[INFO] [stdout]    |
[INFO] [stdout] 56 |     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:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |     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: `mode`
[INFO] [stdout]    --> src/fuse/fuse.rs:156:21
[INFO] [stdout]     |
[INFO] [stdout] 156 |         if let Some(mode) = _mode {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:683:29
[INFO] [stdout]     |
[INFO] [stdout] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/core_manager.rs:696:29
[INFO] [stdout]     |
[INFO] [stdout] 696 |                         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:701:29
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         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:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     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:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     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:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     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: value assigned to `space` is never read
[INFO] [stdout]    --> src/compress/huffman.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut space = 0u8;
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/tl/tl.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl TranslationLayer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_direct` is never used
[INFO] [stdout]    --> src/tl/tl.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 81  | impl TranslationLayer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/tl/tl_helper.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Used` and `Unused` are never constructed
[INFO] [stdout]   --> src/tl/tl_helper.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum BlockType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Used,         // 被用作坏块映射
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     Unused,       // 未被使用的
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse` is never used
[INFO] [stdout]   --> src/tl/tl_helper.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gc/gc_event.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum GCEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stdout]  --> src/gc/gc_define.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GCStrategy {
[INFO] [stdout]   |          ---------- variants in this enum
[INFO] [stdout] 6 |     Forward,          // 前台GC
[INFO] [stdout] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_block_info` is never used
[INFO] [stdout]   --> src/gc/block_table.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl BlockTable {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_block_driect` is never used
[INFO] [stdout]   --> src/buf.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_disk_speed` is never used
[INFO] [stdout]   --> src/buf.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl BufCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]    --> src/buf.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct Buf {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 142 |     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: function `get_groups` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_gid` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creation_mode` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_read` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_file_handle_write` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_access` is never used
[INFO] [stdout]   --> src/fuse/permission.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn check_access(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/bit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_bit_segment` and `set_bit_segment` are never used
[INFO] [stdout]   --> src/core/bit.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl BIT {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stdout]  --> src/core/pit.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stdout]  --> src/core/pit.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stdout]  --> src/core/journal.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JournalType` is never used
[INFO] [stdout]   --> src/core/journal.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum JournalType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGICNUMBER` is never used
[INFO] [stdout]  --> src/core/super_stat.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stdout]   --> src/core/super_stat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SuperStat {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     magic_code: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     reserved_block_num: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     page_size: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/core/super_stat.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout] 25  | impl SuperStat {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_gc` is never used
[INFO] [stdout]    --> src/core/core_manager.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl CoreManager {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn background_gc(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stdout]   --> src/util/array.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl<T: Copy> Array1<T> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[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: method `debug` is never used
[INFO] [stdout]    --> src/inode/inode.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 62  | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn debug(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dup` is never used
[INFO] [stdout]    --> src/inode/inode.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Inode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `capacity` are never read
[INFO] [stdout]   --> src/inode/inode_manager.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InodeManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 15 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stdout]   --> src/inode/inode_manager.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl InodeManager {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/inode/inode_event.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InodeEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 62 |     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: 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: 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: methods `encode_with_type` and `get_compress_type_score` are never used
[INFO] [stdout]   --> src/compress/compress.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl CompressManager {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_size` is never used
[INFO] [stdout]   --> src/write_buf.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl WriteCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/write_buf.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl WriteBuf {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 62 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.87s
[INFO] running `Command { std: "docker" "inspect" "0d3254c93be0db9578a338dc9cc3c1f5a482150e04bee2bb3e57c46c39e46fc7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d3254c93be0db9578a338dc9cc3c1f5a482150e04bee2bb3e57c46c39e46fc7", kill_on_drop: false }`
[INFO] [stdout] 0d3254c93be0db9578a338dc9cc3c1f5a482150e04bee2bb3e57c46c39e46fc7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c8a99a31be5cb16128c462d3667a4cb0220976392c962473a34af4cedea0d7a1
[INFO] running `Command { std: "docker" "start" "-a" "c8a99a31be5cb16128c462d3667a4cb0220976392c962473a34af4cedea0d7a1", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Filesystem`
[INFO] [stderr]  --> src/main.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use fuser::{Filesystem, MountOption};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::ecc`
[INFO] [stderr]  --> src/tl/check_center.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::util::ecc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate-level attribute should be in the root module
[INFO] [stderr]  --> src/util/crc32.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![no_std]
[INFO] [stderr]   | ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:36:28
[INFO] [stderr]    |
[INFO] [stderr] 36 |     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)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dev`
[INFO] [stderr]   --> src/buf.rs:56:29
[INFO] [stderr]    |
[INFO] [stderr] 56 |     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:68:42
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[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:86:29
[INFO] [stderr]    |
[INFO] [stderr] 86 |     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: `mode`
[INFO] [stderr]    --> src/fuse/fuse.rs:156:21
[INFO] [stderr]     |
[INFO] [stderr] 156 |         if let Some(mode) = _mode {
[INFO] [stderr]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:683:29
[INFO] [stderr]     |
[INFO] [stderr] 683 |                         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]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/core/core_manager.rs:696:29
[INFO] [stderr]     |
[INFO] [stderr] 696 |                         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:701:29
[INFO] [stderr]     |
[INFO] [stderr] 701 |                         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:24:29
[INFO] [stderr]    |
[INFO] [stderr] 24 |     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:34:34
[INFO] [stderr]    |
[INFO] [stderr] 34 |     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:34:48
[INFO] [stderr]    |
[INFO] [stderr] 34 |     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:43:34
[INFO] [stderr]    |
[INFO] [stderr] 43 |     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: value assigned to `space` is never read
[INFO] [stderr]    --> src/compress/huffman.rs:224:17
[INFO] [stderr]     |
[INFO] [stderr] 224 |         let mut space = 0u8;
[INFO] [stderr]     |                 ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_disk_speed` is never used
[INFO] [stderr]   --> src/tl/tl.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl TranslationLayer {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `write_block_direct` is never used
[INFO] [stderr]    --> src/tl/tl.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr] 81  | impl TranslationLayer {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stderr]  --> src/tl/tl_helper.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stderr]  --> src/tl/tl_helper.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Used` and `Unused` are never constructed
[INFO] [stderr]   --> src/tl/tl_helper.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 7  | pub enum BlockType {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 10 |     Used,         // 被用作坏块映射
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 11 |     Unused,       // 未被使用的
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reverse` is never used
[INFO] [stderr]   --> src/tl/tl_helper.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/gc/gc_event.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum GCEvent {
[INFO] [stderr]    |          ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 19 |     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] 
[INFO] [stderr] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed
[INFO] [stderr]  --> src/gc/gc_define.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum GCStrategy {
[INFO] [stderr]   |          ---------- variants in this enum
[INFO] [stderr] 6 |     Forward,          // 前台GC
[INFO] [stderr] 7 |     BackgroundSimple, // 后台标准GC
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     BackgroundCold,   // 后台回收冷块
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_block_info` is never used
[INFO] [stderr]   --> src/gc/block_table.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl BlockTable {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `write_block_driect` is never used
[INFO] [stderr]   --> src/buf.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl BufCache {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_disk_speed` is never used
[INFO] [stderr]   --> src/buf.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 97 | impl BufCache {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] 98 |     pub fn get_disk_speed(&self) -> (u32, u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `address` is never read
[INFO] [stderr]    --> src/buf.rs:142:5
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub struct Buf {
[INFO] [stderr]     |            --- field in this struct
[INFO] [stderr] 142 |     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: function `get_groups` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn get_groups(pid: u32) -> Vec<u32> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `creation_gid` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `creation_mode` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn creation_mode(mode: u32) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_file_handle_read` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_file_handle_write` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_access` is never used
[INFO] [stderr]   --> src/fuse/permission.rs:56:8
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn check_access(
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stderr]  --> src/core/bit.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_bit_segment` and `set_bit_segment` are never used
[INFO] [stderr]   --> src/core/bit.rs:51:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl BIT {
[INFO] [stderr]    | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn get_bit_segment(&self, block_no: u32) -> BITSegement {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_1` is never used
[INFO] [stderr]  --> src/core/pit.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER_2` is never used
[INFO] [stderr]  --> src/core/pit.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC_NUMBER` is never used
[INFO] [stderr]  --> src/core/journal.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `JournalType` is never used
[INFO] [stderr]   --> src/core/journal.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum JournalType {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGICNUMBER` is never used
[INFO] [stderr]  --> src/core/super_stat.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | const MAGICNUMBER: u32 = 0x3bf7444d;
[INFO] [stderr]   |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read
[INFO] [stderr]   --> src/core/super_stat.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct SuperStat {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 11 |     magic_code: u32,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     reserved_block_num: u32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 20 |     page_size: u32,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/core/super_stat.rs:42:12
[INFO] [stderr]     |
[INFO] [stderr] 25  | impl SuperStat {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42  |     pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     pub fn get_bit_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub fn get_bit_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     pub fn get_pit_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn get_pit_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub fn get_journal_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub fn get_journal_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub fn get_kv_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn get_kv_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn get_main_offset(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn get_reserved_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 164 |     pub fn get_page_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `background_gc` is never used
[INFO] [stderr]    --> src/core/core_manager.rs:151:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl CoreManager {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 151 |     pub fn background_gc(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_by_index` and `set_by_index` are never used
[INFO] [stderr]   --> src/util/array.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 8  | impl<T: Copy> Array1<T> {
[INFO] [stderr]    | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn get_by_index(&self,index: u32) -> T {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn set_by_index(&mut self, index: u32, value: T) {
[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: method `debug` is never used
[INFO] [stderr]    --> src/inode/inode.rs:101:12
[INFO] [stderr]     |
[INFO] [stderr] 62  | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn debug(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `dup` is never used
[INFO] [stderr]    --> src/inode/inode.rs:517:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl Inode {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 517 |     pub fn dup(&mut self) -> bool {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `size` and `capacity` are never read
[INFO] [stderr]   --> src/inode/inode_manager.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct InodeManager {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 15 |     size: usize,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 16 |     capacity: usize,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_size` and `get_capacity` are never used
[INFO] [stderr]   --> src/inode/inode_manager.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl InodeManager {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn get_size(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn get_capacity(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/inode/inode_event.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub enum InodeEvent {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 62 |     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: 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: 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: methods `encode_with_type` and `get_compress_type_score` are never used
[INFO] [stderr]   --> src/compress/compress.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl CompressManager {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_size` is never used
[INFO] [stderr]   --> src/write_buf.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl WriteCache {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn get_size(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/write_buf.rs:134:8
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl WriteBuf {
[INFO] [stderr]     | ------------- associated function in this implementation
[INFO] [stderr] 134 |     fn new(address: u32, data: [u8; 4096]) -> WriteBuf {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate `WondFS_fuse` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = help: convert the identifier to snake case: `wond_fs_fuse`
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `WondFS-fuse` (bin "WondFS-fuse" test) generated 62 warnings (run `cargo fix --bin "WondFS-fuse" --tests` to apply 14 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/WondFS_fuse-3d9c089560a494fe)
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test common::directory::test::test_directory_parser ... ok
[INFO] [stdout] test common::path::test::test_skip_elem ... ok
[INFO] [stdout] test core::core_manager::test::basics ... ok
[INFO] [stdout] test core::core_manager::test::inode ... ok
[INFO] [stdout] test compress::snappy::test::basics ... ok
[INFO] [stdout] test compress::compress::test::basics ... ok
[INFO] [stdout] test core::vam::test::basics ... ok
[INFO] [stdout] test compress::huffman::test::basics ... ok
[INFO] [stderr] 
[INFO] [stderr] thread 'driver::fake_disk::test::basics' has overflowed its stack
[INFO] [stderr] fatal runtime error: stack overflow
[INFO] [stderr] error: test failed, to rerun pass `--bin WondFS-fuse`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/WondFS_fuse-3d9c089560a494fe` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "c8a99a31be5cb16128c462d3667a4cb0220976392c962473a34af4cedea0d7a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8a99a31be5cb16128c462d3667a4cb0220976392c962473a34af4cedea0d7a1", kill_on_drop: false }`
[INFO] [stdout] c8a99a31be5cb16128c462d3667a4cb0220976392c962473a34af4cedea0d7a1
