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