[INFO] cloning repository https://github.com/leakingtapan/git-internals
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leakingtapan/git-internals" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleakingtapan%2Fgit-internals", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleakingtapan%2Fgit-internals'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac4f9493a8a406ac7273e56d4b4ab8f4a9466cef
[INFO] testing leakingtapan/git-internals against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleakingtapan%2Fgit-internals" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/leakingtapan/git-internals
[INFO] finished tweaking git repo https://github.com/leakingtapan/git-internals
[INFO] tweaked toml for git repo https://github.com/leakingtapan/git-internals written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leakingtapan/git-internals on toolchain 1.98.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/leakingtapan/git-internals already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded block-buffer v0.10.0
[INFO] [stderr]   Downloaded crypto-common v0.1.1
[INFO] [stderr]   Downloaded digest v0.10.1
[INFO] [stderr]   Downloaded flate2 v1.0.22
[INFO] [stderr]   Downloaded crc32fast v1.3.0
[INFO] [stderr]   Downloaded libc v0.2.111
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df
[INFO] running `Command { std: "docker" "start" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling libc v0.2.111
[INFO] [stderr]    Compiling crc32fast v1.3.0
[INFO] [stderr]    Compiling cpufeatures v0.2.1
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling flate2 v1.0.22
[INFO] [stderr]    Compiling block-buffer v0.10.0
[INFO] [stderr]    Compiling crypto-common v0.1.1
[INFO] [stderr]    Compiling digest v0.10.1
[INFO] [stderr]    Compiling sha-1 v0.10.0
[INFO] [stderr]    Compiling git-internal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `object`
[INFO] [stdout]    --> src/main.rs:219:19
[INFO] [stdout]     |
[INFO] [stdout] 219 |   let (committer, object) = split_once(object, b'\n')?;
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_object`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `magic`
[INFO] [stdout]    --> src/main.rs:360:7
[INFO] [stdout]     |
[INFO] [stdout] 360 |   let magic = read_bytes::<dyn Read, 4>(&mut file)?;
[INFO] [stdout]     |       ^^^^^ help: if this is intentional, prefix it with an underscore: `_magic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/main.rs:640:25
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn read_unpacked_object(hash: Hash) -> io::Result<Object> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRANCH_REFS_DIRECTORY` is never used
[INFO] [stdout]   --> src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const BRANCH_REFS_DIRECTORY: &str = ".git/refs/heads";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_branch_head` is never used
[INFO] [stdout]   --> src/main.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn get_branch_head(branch: &str) -> io::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEAD_FILE` is never used
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEAD_FILE: &str = ".git/HEAD";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REF_PREFIX` is never used
[INFO] [stdout]   --> src/main.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const REF_PREFIX: &str = "ref: refs/heads/";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_head` is never used
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_head() -> io::Result<Head> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Head` is never used
[INFO] [stdout]   --> src/main.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | enum Head {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_hash` is never used
[INFO] [stdout]   --> src/main.rs:54:6
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Head {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 54 |   fn get_hash(&self) -> io::Result<Hash> {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_hash` is never used
[INFO] [stdout]    --> src/main.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn hex_to_hash(hex_hash: &[u8]) -> Option<Hash> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJECTS_DIRECTORY` is never used
[INFO] [stdout]    --> src/main.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const OBJECTS_DIRECTORY: &str = ".git/objects";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_object` is never used
[INFO] [stdout]    --> src/main.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn read_object(hash: Hash) -> io::Result<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const COMMIT_HEADER: &[u8] = b"commit ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const TREE_LINE_PREFIX: &[u8] = b"tree ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARENT_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const PARENT_LINE_PREFIX: &[u8] = b"parent ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTHOR_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const AUTHOR_LINE_PREFIX: &[u8] = b"author ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMITTER_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const COMMITTER_LINE_PREFIX: &[u8] = b"committer ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decimal_char_value` is never used
[INFO] [stdout]    --> src/main.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn decimal_char_value(decimal_char: u8) -> Option<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_decimal` is never used
[INFO] [stdout]    --> src/main.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn parse_decimal(decimal_str: &[u8]) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_once` is never used
[INFO] [stdout]    --> src/main.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn split_once<T: PartialEq>(slice: &[T], delimiter: T) -> Option<(&[T], &[T])> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_header` is never used
[INFO] [stdout]    --> src/main.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn check_header<'a>(object: &'a [u8], header: &[u8]) -> Option<&'a [u8]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Commit` is never constructed
[INFO] [stdout]    --> src/main.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct Commit {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_commit` is never used
[INFO] [stdout]    --> src/main.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn parse_commit(object: &[u8]) -> Option<Commit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_commit` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn read_commit(hash: Hash) -> io::Result<Commit> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:242:7
[INFO] [stdout]     |
[INFO] [stdout] 242 | const TREE_HEADER: &[u8] = b"tree ";
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/main.rs:245:6
[INFO] [stdout]     |
[INFO] [stdout] 245 | enum Mode {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeEntry` is never constructed
[INFO] [stdout]    --> src/main.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct TreeEntry {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tree` is never constructed
[INFO] [stdout]    --> src/main.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct Tree(Vec<TreeEntry>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_tree` is never used
[INFO] [stdout]    --> src/main.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn parse_tree(object: &[u8]) -> Option<Tree> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tree` is never used
[INFO] [stdout]    --> src/main.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn read_tree(hash: Hash) -> io::Result<Tree> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOB_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:290:7
[INFO] [stdout]     |
[INFO] [stdout] 290 | const BLOB_HEADER: &[u8] = b"blob ";
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blob` is never constructed
[INFO] [stdout]    --> src/main.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | struct Blob(Vec<u8>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_blob` is never used
[INFO] [stdout]    --> src/main.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn read_blob(hash: Hash) -> io::Result<Blob> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_blob` is never used
[INFO] [stdout]    --> src/main.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn get_file_blob(tree: Hash, path: &str) -> io::Result<Blob> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PACKS_DIRECTORY` is never used
[INFO] [stdout]    --> src/main.rs:326:7
[INFO] [stdout]     |
[INFO] [stdout] 326 | const PACKS_DIRECTORY: &str = ".git/objects/pack";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_pack_index` is never used
[INFO] [stdout]    --> src/main.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn read_pack_index(file: &str) -> io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3.51s
[INFO] running `Command { std: "docker" "inspect" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling git-internal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `object`
[INFO] [stdout]    --> src/main.rs:219:19
[INFO] [stdout]     |
[INFO] [stdout] 219 |   let (committer, object) = split_once(object, b'\n')?;
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_object`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `magic`
[INFO] [stdout]    --> src/main.rs:360:7
[INFO] [stdout]     |
[INFO] [stdout] 360 |   let magic = read_bytes::<dyn Read, 4>(&mut file)?;
[INFO] [stdout]     |       ^^^^^ help: if this is intentional, prefix it with an underscore: `_magic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/main.rs:640:25
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn read_unpacked_object(hash: Hash) -> io::Result<Object> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRANCH_REFS_DIRECTORY` is never used
[INFO] [stdout]   --> src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const BRANCH_REFS_DIRECTORY: &str = ".git/refs/heads";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_branch_head` is never used
[INFO] [stdout]   --> src/main.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn get_branch_head(branch: &str) -> io::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEAD_FILE` is never used
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEAD_FILE: &str = ".git/HEAD";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REF_PREFIX` is never used
[INFO] [stdout]   --> src/main.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const REF_PREFIX: &str = "ref: refs/heads/";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_head` is never used
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_head() -> io::Result<Head> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Head` is never used
[INFO] [stdout]   --> src/main.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | enum Head {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_hash` is never used
[INFO] [stdout]   --> src/main.rs:54:6
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Head {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 54 |   fn get_hash(&self) -> io::Result<Hash> {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_hash` is never used
[INFO] [stdout]    --> src/main.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn hex_to_hash(hex_hash: &[u8]) -> Option<Hash> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJECTS_DIRECTORY` is never used
[INFO] [stdout]    --> src/main.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const OBJECTS_DIRECTORY: &str = ".git/objects";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_object` is never used
[INFO] [stdout]    --> src/main.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn read_object(hash: Hash) -> io::Result<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const COMMIT_HEADER: &[u8] = b"commit ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const TREE_LINE_PREFIX: &[u8] = b"tree ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARENT_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const PARENT_LINE_PREFIX: &[u8] = b"parent ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTHOR_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const AUTHOR_LINE_PREFIX: &[u8] = b"author ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMITTER_LINE_PREFIX` is never used
[INFO] [stdout]    --> src/main.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const COMMITTER_LINE_PREFIX: &[u8] = b"committer ";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decimal_char_value` is never used
[INFO] [stdout]    --> src/main.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn decimal_char_value(decimal_char: u8) -> Option<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_decimal` is never used
[INFO] [stdout]    --> src/main.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn parse_decimal(decimal_str: &[u8]) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_once` is never used
[INFO] [stdout]    --> src/main.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn split_once<T: PartialEq>(slice: &[T], delimiter: T) -> Option<(&[T], &[T])> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_header` is never used
[INFO] [stdout]    --> src/main.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn check_header<'a>(object: &'a [u8], header: &[u8]) -> Option<&'a [u8]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Commit` is never constructed
[INFO] [stdout]    --> src/main.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct Commit {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_commit` is never used
[INFO] [stdout]    --> src/main.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn parse_commit(object: &[u8]) -> Option<Commit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_commit` is never used
[INFO] [stdout]    --> src/main.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn read_commit(hash: Hash) -> io::Result<Commit> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:242:7
[INFO] [stdout]     |
[INFO] [stdout] 242 | const TREE_HEADER: &[u8] = b"tree ";
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/main.rs:245:6
[INFO] [stdout]     |
[INFO] [stdout] 245 | enum Mode {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeEntry` is never constructed
[INFO] [stdout]    --> src/main.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct TreeEntry {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tree` is never constructed
[INFO] [stdout]    --> src/main.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct Tree(Vec<TreeEntry>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_tree` is never used
[INFO] [stdout]    --> src/main.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn parse_tree(object: &[u8]) -> Option<Tree> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tree` is never used
[INFO] [stdout]    --> src/main.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn read_tree(hash: Hash) -> io::Result<Tree> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOB_HEADER` is never used
[INFO] [stdout]    --> src/main.rs:290:7
[INFO] [stdout]     |
[INFO] [stdout] 290 | const BLOB_HEADER: &[u8] = b"blob ";
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blob` is never constructed
[INFO] [stdout]    --> src/main.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | struct Blob(Vec<u8>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_blob` is never used
[INFO] [stdout]    --> src/main.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn read_blob(hash: Hash) -> io::Result<Blob> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_blob` is never used
[INFO] [stdout]    --> src/main.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn get_file_blob(tree: Hash, path: &str) -> io::Result<Blob> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PACKS_DIRECTORY` is never used
[INFO] [stdout]    --> src/main.rs:326:7
[INFO] [stdout]     |
[INFO] [stdout] 326 | const PACKS_DIRECTORY: &str = ".git/objects/pack";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_pack_index` is never used
[INFO] [stdout]    --> src/main.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn read_pack_index(file: &str) -> io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.38s
[INFO] running `Command { std: "docker" "inspect" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `object`
[INFO] [stdout] 
[INFO] [stderr]    --> src/main.rs:219:19
[INFO] [stdout] running 2 tests
[INFO] [stderr]     |
[INFO] [stdout] test test_hash_empty ... ok
[INFO] [stderr] 219 |   let (committer, object) = split_once(object, b'\n')?;
[INFO] [stdout] test test_hash_valid ... ok
[INFO] [stderr]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_object`
[INFO] [stdout] 
[INFO] [stderr]     |
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `magic`
[INFO] [stderr]    --> src/main.rs:360:7
[INFO] [stderr]     |
[INFO] [stderr] 360 |   let magic = read_bytes::<dyn Read, 4>(&mut file)?;
[INFO] [stderr]     |       ^^^^^ help: if this is intentional, prefix it with an underscore: `_magic`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/main.rs:640:25
[INFO] [stderr]     |
[INFO] [stderr] 640 | fn read_unpacked_object(hash: Hash) -> io::Result<Object> {
[INFO] [stderr]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BRANCH_REFS_DIRECTORY` is never used
[INFO] [stderr]   --> src/main.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | const BRANCH_REFS_DIRECTORY: &str = ".git/refs/heads";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_branch_head` is never used
[INFO] [stderr]   --> src/main.rs:14:4
[INFO] [stderr]    |
[INFO] [stderr] 14 | fn get_branch_head(branch: &str) -> io::Result<String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEAD_FILE` is never used
[INFO] [stderr]   --> src/main.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const HEAD_FILE: &str = ".git/HEAD";
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `REF_PREFIX` is never used
[INFO] [stderr]   --> src/main.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const REF_PREFIX: &str = "ref: refs/heads/";
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_head` is never used
[INFO] [stderr]   --> src/main.rs:23:4
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn get_head() -> io::Result<Head> {
[INFO] [stderr]    |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Head` is never used
[INFO] [stderr]   --> src/main.rs:48:6
[INFO] [stderr]    |
[INFO] [stderr] 48 | enum Head {
[INFO] [stderr]    |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_hash` is never used
[INFO] [stderr]   --> src/main.rs:54:6
[INFO] [stderr]    |
[INFO] [stderr] 53 | impl Head {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 54 |   fn get_hash(&self) -> io::Result<Hash> {
[INFO] [stderr]    |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hex_to_hash` is never used
[INFO] [stderr]    --> src/main.rs:105:4
[INFO] [stderr]     |
[INFO] [stderr] 105 | fn hex_to_hash(hex_hash: &[u8]) -> Option<Hash> {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OBJECTS_DIRECTORY` is never used
[INFO] [stderr]    --> src/main.rs:127:7
[INFO] [stderr]     |
[INFO] [stderr] 127 | const OBJECTS_DIRECTORY: &str = ".git/objects";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_object` is never used
[INFO] [stderr]    --> src/main.rs:130:4
[INFO] [stderr]     |
[INFO] [stderr] 130 | fn read_object(hash: Hash) -> io::Result<Vec<u8>> {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `COMMIT_HEADER` is never used
[INFO] [stderr]    --> src/main.rs:144:7
[INFO] [stderr]     |
[INFO] [stderr] 144 | const COMMIT_HEADER: &[u8] = b"commit ";
[INFO] [stderr]     |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TREE_LINE_PREFIX` is never used
[INFO] [stderr]    --> src/main.rs:145:7
[INFO] [stderr]     |
[INFO] [stderr] 145 | const TREE_LINE_PREFIX: &[u8] = b"tree ";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PARENT_LINE_PREFIX` is never used
[INFO] [stderr]    --> src/main.rs:146:7
[INFO] [stderr]     |
[INFO] [stderr] 146 | const PARENT_LINE_PREFIX: &[u8] = b"parent ";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `AUTHOR_LINE_PREFIX` is never used
[INFO] [stderr]    --> src/main.rs:147:7
[INFO] [stderr]     |
[INFO] [stderr] 147 | const AUTHOR_LINE_PREFIX: &[u8] = b"author ";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `COMMITTER_LINE_PREFIX` is never used
[INFO] [stderr]    --> src/main.rs:148:7
[INFO] [stderr]     |
[INFO] [stderr] 148 | const COMMITTER_LINE_PREFIX: &[u8] = b"committer ";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decimal_char_value` is never used
[INFO] [stderr]    --> src/main.rs:152:4
[INFO] [stderr]     |
[INFO] [stderr] 152 | fn decimal_char_value(decimal_char: u8) -> Option<u8> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_decimal` is never used
[INFO] [stderr]    --> src/main.rs:161:4
[INFO] [stderr]     |
[INFO] [stderr] 161 | fn parse_decimal(decimal_str: &[u8]) -> Option<usize> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `split_once` is never used
[INFO] [stderr]    --> src/main.rs:172:4
[INFO] [stderr]     |
[INFO] [stderr] 172 | fn split_once<T: PartialEq>(slice: &[T], delimiter: T) -> Option<(&[T], &[T])> {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_header` is never used
[INFO] [stderr]    --> src/main.rs:179:4
[INFO] [stderr]     |
[INFO] [stderr] 179 | fn check_header<'a>(object: &'a [u8], header: &[u8]) -> Option<&'a [u8]> {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Commit` is never constructed
[INFO] [stderr]    --> src/main.rs:191:8
[INFO] [stderr]     |
[INFO] [stderr] 191 | struct Commit {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_commit` is never used
[INFO] [stderr]    --> src/main.rs:199:4
[INFO] [stderr]     |
[INFO] [stderr] 199 | fn parse_commit(object: &[u8]) -> Option<Commit> {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_commit` is never used
[INFO] [stderr]    --> src/main.rs:235:4
[INFO] [stderr]     |
[INFO] [stderr] 235 | fn read_commit(hash: Hash) -> io::Result<Commit> {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TREE_HEADER` is never used
[INFO] [stderr]    --> src/main.rs:242:7
[INFO] [stderr]     |
[INFO] [stderr] 242 | const TREE_HEADER: &[u8] = b"tree ";
[INFO] [stderr]     |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Mode` is never used
[INFO] [stderr]    --> src/main.rs:245:6
[INFO] [stderr]     |
[INFO] [stderr] 245 | enum Mode {
[INFO] [stderr]     |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TreeEntry` is never constructed
[INFO] [stderr]    --> src/main.rs:252:8
[INFO] [stderr]     |
[INFO] [stderr] 252 | struct TreeEntry {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Tree` is never constructed
[INFO] [stderr]    --> src/main.rs:259:8
[INFO] [stderr]     |
[INFO] [stderr] 259 | struct Tree(Vec<TreeEntry>);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_tree` is never used
[INFO] [stderr]    --> src/main.rs:261:4
[INFO] [stderr]     |
[INFO] [stderr] 261 | fn parse_tree(object: &[u8]) -> Option<Tree> {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_tree` is never used
[INFO] [stderr]    --> src/main.rs:284:4
[INFO] [stderr]     |
[INFO] [stderr] 284 | fn read_tree(hash: Hash) -> io::Result<Tree> {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLOB_HEADER` is never used
[INFO] [stderr]    --> src/main.rs:290:7
[INFO] [stderr]     |
[INFO] [stderr] 290 | const BLOB_HEADER: &[u8] = b"blob ";
[INFO] [stderr]     |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Blob` is never constructed
[INFO] [stderr]    --> src/main.rs:292:8
[INFO] [stderr]     |
[INFO] [stderr] 292 | struct Blob(Vec<u8>);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_blob` is never used
[INFO] [stderr]    --> src/main.rs:294:4
[INFO] [stderr]     |
[INFO] [stderr] 294 | fn read_blob(hash: Hash) -> io::Result<Blob> {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_file_blob` is never used
[INFO] [stderr]    --> src/main.rs:302:4
[INFO] [stderr]     |
[INFO] [stderr] 302 | fn get_file_blob(tree: Hash, path: &str) -> io::Result<Blob> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PACKS_DIRECTORY` is never used
[INFO] [stderr]    --> src/main.rs:326:7
[INFO] [stderr]     |
[INFO] [stderr] 326 | const PACKS_DIRECTORY: &str = ".git/objects/pack";
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_pack_index` is never used
[INFO] [stderr]    --> src/main.rs:355:4
[INFO] [stderr]     |
[INFO] [stderr] 355 | fn read_pack_index(file: &str) -> io::Result<()> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `git-internal` (bin "git-internal" test) generated 37 warnings (run `cargo fix --bin "git-internal" -p git-internal --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/git_internal-3f01ed205b8e0fb5)
[INFO] running `Command { std: "docker" "inspect" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df", kill_on_drop: false }`
[INFO] [stdout] 6610a5842c11df3ea9dfcbda50cdc83257920d234e37f668f88257b759fb54df
