[INFO] cloning repository https://github.com/zhangcs-cn/jsnap
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zhangcs-cn/jsnap" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangcs-cn%2Fjsnap", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangcs-cn%2Fjsnap'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 35540a6bf0e7fd55b58c394c23071e33ae663607
[INFO] checking zhangcs-cn/jsnap against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangcs-cn%2Fjsnap" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/zhangcs-cn/jsnap
[INFO] finished tweaking git repo https://github.com/zhangcs-cn/jsnap
[INFO] tweaked toml for git repo https://github.com/zhangcs-cn/jsnap written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zhangcs-cn/jsnap on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zhangcs-cn/jsnap 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustyline-derive v0.9.0
[INFO] [stderr]   Downloaded indicatif v0.17.5
[INFO] [stderr]   Downloaded quote v1.0.29
[INFO] [stderr]   Downloaded fd-lock v3.0.12
[INFO] [stderr]   Downloaded derive-getters v0.3.0
[INFO] [stderr]   Downloaded byteordered v0.6.0
[INFO] [stderr]   Downloaded bitflags v2.2.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.64
[INFO] [stderr]   Downloaded rusqlite v0.29.0
[INFO] [stderr]   Downloaded portable-atomic v1.3.2
[INFO] [stderr]   Downloaded nix v0.26.2
[INFO] [stderr]   Downloaded syn v2.0.25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9e3c6ff60ea8b1a78a7dddf01e12978085d96ad2a31632c1941e3c2e8894546c
[INFO] running `Command { std: "docker" "start" "-a" "9e3c6ff60ea8b1a78a7dddf01e12978085d96ad2a31632c1941e3c2e8894546c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9e3c6ff60ea8b1a78a7dddf01e12978085d96ad2a31632c1941e3c2e8894546c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e3c6ff60ea8b1a78a7dddf01e12978085d96ad2a31632c1941e3c2e8894546c", kill_on_drop: false }`
[INFO] [stdout] 9e3c6ff60ea8b1a78a7dddf01e12978085d96ad2a31632c1941e3c2e8894546c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 84e881b5f6afb06262b37fbe47d84a70678c81120fcb58ee758da2b27358a714
[INFO] running `Command { std: "docker" "start" "-a" "84e881b5f6afb06262b37fbe47d84a70678c81120fcb58ee758da2b27358a714", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.64
[INFO] [stderr]    Compiling rustix v0.37.19
[INFO] [stderr]     Checking linux-raw-sys v0.3.7
[INFO] [stderr]     Checking io-lifetimes v1.0.10
[INFO] [stderr]    Compiling quote v1.0.29
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking ahash v0.8.3
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]    Compiling portable-atomic v1.3.2
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking bitflags v2.2.1
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking nix v0.26.2
[INFO] [stderr]     Checking console v0.15.5
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking hashlink v0.8.2
[INFO] [stderr]     Checking home v0.5.5
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]    Compiling syn v2.0.25
[INFO] [stderr]     Checking byteordered v0.6.0
[INFO] [stderr]     Checking indicatif v0.17.5
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking anstream v0.3.2
[INFO] [stderr]     Checking fd-lock v3.0.12
[INFO] [stderr]    Compiling rustyline-derive v0.9.0
[INFO] [stderr]     Checking clap_builder v4.2.7
[INFO] [stderr]    Compiling derive-getters v0.3.0
[INFO] [stderr]     Checking clap v4.2.7
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking rustyline v12.0.0
[INFO] [stderr]     Checking jsnap v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `OsStr` and `OsString`
[INFO] [stdout]  --> src/parser/hprof.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::{OsStr, OsString};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/parser/hprof.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/parser/hprof.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `Cursor`, and `SeekFrom`
[INFO] [stdout]  --> src/parser/hprof.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Cursor, ErrorKind, SeekFrom};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::dump::get_heap_dump`
[INFO] [stdout]  --> src/parser/hprof.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::parser::dump::get_heap_dump;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::reader`
[INFO] [stdout]  --> src/parser/hprof.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::parser::reader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Byte` and `Int`
[INFO] [stdout]   --> src/parser/hprof.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::io::channel::{Result, Byte, Int, Long};
[INFO] [stdout]    |                                  ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io::channel`
[INFO] [stdout]  --> src/parser/reader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::io::channel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/parser/dump.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::id`
[INFO] [stdout]  --> src/parser/dump.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::id;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Cursor`
[INFO] [stdout]  --> src/io/channel.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Cursor, Error, ErrorKind, Read, Seek, SeekFrom};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/store/base.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `Result`, and `params`
[INFO] [stdout]  --> src/store/base.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rusqlite::{Connection, params, Result};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/store/class.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_getters::Getters`
[INFO] [stdout]  --> src/store/class.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use derive_getters::Getters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rusqlite::Connection`
[INFO] [stdout]  --> src/store/class.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rusqlite::Connection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DBStore` and `Object`
[INFO] [stdout]  --> src/store/class.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::store::base::{DBStore, Object};
[INFO] [stdout]   |                          ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyline::error::ReadlineError`
[INFO] [stdout]  --> src/cli.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rustyline::error::ReadlineError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsStr`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]   --> src/main.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::cli::{JSnapCli, Result};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OsStr` and `OsString`
[INFO] [stdout]  --> src/parser/hprof.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::{OsStr, OsString};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/parser/hprof.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/parser/hprof.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `Cursor`, and `SeekFrom`
[INFO] [stdout]  --> src/parser/hprof.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Cursor, ErrorKind, SeekFrom};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::dump::get_heap_dump`
[INFO] [stdout]  --> src/parser/hprof.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::parser::dump::get_heap_dump;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::reader`
[INFO] [stdout]  --> src/parser/hprof.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::parser::reader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Byte` and `Int`
[INFO] [stdout]   --> src/parser/hprof.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::io::channel::{Result, Byte, Int, Long};
[INFO] [stdout]    |                                  ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io::channel`
[INFO] [stdout]  --> src/parser/reader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::io::channel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/parser/dump.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::id`
[INFO] [stdout]  --> src/parser/dump.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::id;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader` and `Cursor`
[INFO] [stdout]  --> src/io/channel.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Cursor, Error, ErrorKind, Read, Seek, SeekFrom};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/store/base.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `Result`, and `params`
[INFO] [stdout]  --> src/store/base.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rusqlite::{Connection, params, Result};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/store/class.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_getters::Getters`
[INFO] [stdout]  --> src/store/class.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use derive_getters::Getters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rusqlite::Connection`
[INFO] [stdout]  --> src/store/class.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rusqlite::Connection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DBStore` and `Object`
[INFO] [stdout]  --> src/store/class.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::store::base::{DBStore, Object};
[INFO] [stdout]   |                          ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyline::error::ReadlineError`
[INFO] [stdout]  --> src/cli.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rustyline::error::ReadlineError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsStr`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]   --> src/main.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::cli::{JSnapCli, Result};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |             return exit(exitcode::OSERR);
[INFO] [stdout]    |             ^^^^^^^---------------------
[INFO] [stdout]    |             |      |
[INFO] [stdout]    |             |      any code following this expression is unreachable
[INFO] [stdout]    |             unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |             return exit(exitcode::OSERR);
[INFO] [stdout]    |             ^^^^^^^---------------------
[INFO] [stdout]    |             |      |
[INFO] [stdout]    |             |      any code following this expression is unreachable
[INFO] [stdout]    |             unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/parser/hprof.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let trace = reader.read::<Trace>(length);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/parser/hprof.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let trace = reader.read::<Trace>(length);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sites`
[INFO] [stdout]    --> src/parser/hprof.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let sites = reader.read::<AllocSites>(length);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_sites`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_serial_num`
[INFO] [stdout]    --> src/parser/hprof.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 let thread_serial_num = reader.read_int();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_serial_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sites`
[INFO] [stdout]    --> src/parser/hprof.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let sites = reader.read::<AllocSites>(length);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_sites`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_serial_num`
[INFO] [stdout]    --> src/parser/hprof.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 let thread_serial_num = reader.read_int();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_serial_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_element`
[INFO] [stdout]    --> src/parser/reader.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let num_element = reader.read_int();
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_serial_num`
[INFO] [stdout]    --> src/parser/reader.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let trace_serial_num = reader.read_int();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_serial_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/parser/reader.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn read(reader: &mut Reader, len: Int) -> Self {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flags`
[INFO] [stdout]    --> src/parser/reader.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let flags = reader.read_short();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_element`
[INFO] [stdout]    --> src/parser/reader.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let num_element = reader.read_int();
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cutoff_ratio`
[INFO] [stdout]    --> src/parser/reader.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let cutoff_ratio = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cutoff_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_live_bytes`
[INFO] [stdout]    --> src/parser/reader.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let total_live_bytes = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_live_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_live_inst`
[INFO] [stdout]    --> src/parser/reader.rs:250:13
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let total_live_inst = reader.read_int();    // total live instances
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_live_inst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_serial_num`
[INFO] [stdout]    --> src/parser/reader.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let trace_serial_num = reader.read_int();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_serial_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_bytes_allocated`
[INFO] [stdout]    --> src/parser/reader.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let total_bytes_allocated = reader.read_long();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_bytes_allocated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_inst_allocated`
[INFO] [stdout]    --> src/parser/reader.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let total_inst_allocated = reader.read_long();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_inst_allocated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sites`
[INFO] [stdout]    --> src/parser/reader.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let num_sites = reader.read_int(); // number of sites that follow
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sites`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/parser/reader.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn read(reader: &mut Reader, len: Int) -> Self {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flags`
[INFO] [stdout]    --> src/parser/reader.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let flags = reader.read_short();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cutoff_ratio`
[INFO] [stdout]    --> src/parser/reader.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let cutoff_ratio = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cutoff_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_live_bytes`
[INFO] [stdout]    --> src/parser/reader.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let total_live_bytes = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_live_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_live_inst`
[INFO] [stdout]    --> src/parser/reader.rs:250:13
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let total_live_inst = reader.read_int();    // total live instances
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_live_inst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_bytes_allocated`
[INFO] [stdout]    --> src/parser/reader.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let total_bytes_allocated = reader.read_long();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_bytes_allocated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_inst_allocated`
[INFO] [stdout]    --> src/parser/reader.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let total_inst_allocated = reader.read_long();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_inst_allocated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sites`
[INFO] [stdout]    --> src/parser/reader.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let num_sites = reader.read_int(); // number of sites that follow
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sites`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/parser/dump.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     for i in 0..len {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 let thread_seq = reader.read_int(); // thread sequence number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stack_seq`
[INFO] [stdout]   --> src/parser/dump.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 let stack_seq = reader.read_int();  // stack trace sequence number
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_ref_id`
[INFO] [stdout]   --> src/parser/dump.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 let global_ref_id = reader.get_id();    // JNI global ref ID
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_ref_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/parser/dump.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 let depth = reader.read_int();  // frame # in stack trace (-1 for empty)
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/parser/dump.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 let depth = reader.read_int(); // frame # in stack trace (-1 for empty)
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:64:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:74:21
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_array`
[INFO] [stdout]   --> src/parser/dump.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 let obj_array = reader.read::<ObjectArray>(len);
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stack_ser`
[INFO] [stdout]    --> src/parser/dump.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let stack_ser = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_ser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protection_domain_id`
[INFO] [stdout]    --> src/parser/dump.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let protection_domain_id = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protection_domain_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/parser/dump.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     for i in 0..len {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reserved1`
[INFO] [stdout]    --> src/parser/dump.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let reserved1 = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reserved1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reserved12`
[INFO] [stdout]    --> src/parser/dump.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let reserved12 = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reserved12`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 let thread_seq = reader.read_int(); // thread sequence number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stack_seq`
[INFO] [stdout]   --> src/parser/dump.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 let stack_seq = reader.read_int();  // stack trace sequence number
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_ref_id`
[INFO] [stdout]   --> src/parser/dump.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 let global_ref_id = reader.get_id();    // JNI global ref ID
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_ref_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/parser/dump.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 let depth = reader.read_int();  // frame # in stack trace (-1 for empty)
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/parser/dump.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 let depth = reader.read_int(); // frame # in stack trace (-1 for empty)
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:64:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_seq`
[INFO] [stdout]   --> src/parser/dump.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 let thread_seq = reader.read_int(); // thread serial number
[INFO] [stdout]    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_seq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inst_size`
[INFO] [stdout]    --> src/parser/dump.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let inst_size = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inst_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/parser/dump.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let name = format!("<constant pool[{}]>", index);
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/parser/dump.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let val = get_value(reader, ty);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_id`
[INFO] [stdout]    --> src/parser/dump.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let name_id = reader.get_id();  // static field name
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/parser/dump.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let val = get_value(reader, ty);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_id`
[INFO] [stdout]   --> src/parser/dump.rs:74:21
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 let obj_id = reader.get_id();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_id`
[INFO] [stdout]    --> src/parser/dump.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |             let name_id = reader.get_id();  // instance field name
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_array`
[INFO] [stdout]   --> src/parser/dump.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 let obj_array = reader.read::<ObjectArray>(len);
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/parser/dump.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let ty = reader.read_byte();    // type
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stack_ser`
[INFO] [stdout]    --> src/parser/dump.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let stack_ser = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_ser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protection_domain_id`
[INFO] [stdout]    --> src/parser/dump.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let protection_domain_id = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protection_domain_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reserved1`
[INFO] [stdout]    --> src/parser/dump.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let reserved1 = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reserved1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reserved12`
[INFO] [stdout]    --> src/parser/dump.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let reserved12 = reader.get_id();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reserved12`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inst_size`
[INFO] [stdout]    --> src/parser/dump.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let inst_size = reader.read_int();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inst_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser/dump.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut elements: Vec<Long> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/parser/dump.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let name = format!("<constant pool[{}]>", index);
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/parser/dump.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let val = get_value(reader, ty);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_id`
[INFO] [stdout]    --> src/parser/dump.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let name_id = reader.get_id();  // static field name
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/parser/dump.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let val = get_value(reader, ty);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_id`
[INFO] [stdout]    --> src/parser/dump.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |             let name_id = reader.get_id();  // instance field name
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/parser/dump.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let ty = reader.read_byte();    // type
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/parser/dump.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let num = reader.read_int();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser/dump.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut elements: Vec<Long> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/parser/dump.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let num = reader.read_int();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/store/base.rs:31:33
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn insert<T: Object>(&self, obj: &T) -> bool {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/store/base.rs:35:33
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn update<T: Object>(&self, obj: &T) -> bool {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/store/base.rs:31:33
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn insert<T: Object>(&self, obj: &T) -> bool {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/store/base.rs:35:33
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn update<T: Object>(&self, obj: &T) -> bool {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `force` is never read
[INFO] [stdout]   --> src/args.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct Args {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     force: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_force` is never used
[INFO] [stdout]   --> src/args.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl Args {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_force(&self) -> &bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `file_name`, `id_size`, `version`, and `timestamp` are never read
[INFO] [stdout]   --> src/parser/hprof.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Hprof {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     file_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     id_size: Long,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 38 |     timestamp: Long,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hprof` 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: fields `id`, `serial_num`, and `stack_trace_ser` are never read
[INFO] [stdout]   --> src/parser/reader.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Class {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     /// class object ID
[INFO] [stdout] 36 |     id: Long,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 37 |     /// class serial number (> 0)
[INFO] [stdout] 38 |     serial_num: Int,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 39 |     /// stack trace serial number
[INFO] [stdout] 40 |     stack_trace_ser: Int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Class` 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: fields `id`, `class_ser_num`, and `line_nr` are never read
[INFO] [stdout]   --> src/parser/reader.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Frame {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 72 |     id: Long,
[INFO] [stdout]    |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     class_ser_num: Int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 80 |     /// 行号
[INFO] [stdout] 81 |     line_nr: Int,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Frame` 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: field `frame_ids` is never read
[INFO] [stdout]    --> src/parser/reader.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Trace {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 116 |     frame_ids: Vec<u64>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Trace` 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: fields `thread_serial_num`, `trace_serial_num`, `t_name_index`, `g_name_index`, and `p_name_index` are never read
[INFO] [stdout]    --> src/parser/reader.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct Thread {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     thread_serial_num: Int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 |     trace_serial_num: Int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     t_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 150 |     g_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 151 |     p_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Thread` 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: fields `live_inst`, `allocate`, and `allocate_inst` are never read
[INFO] [stdout]    --> src/parser/reader.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct HeapSummary {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 175 |     live: Int,
[INFO] [stdout] 176 |     live_inst: Int,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 177 |     allocate: Long,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 178 |     allocate_inst: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HeapSummary` 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: field `depth` is never read
[INFO] [stdout]    --> src/parser/reader.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct ControlSettings {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 225 |     depth: Short,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ControlSettings` 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: methods `read_byte` and `position` are never used
[INFO] [stdout]    --> src/parser/reader.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl Reader {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn read_byte(&mut self) -> Byte {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn position(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_UNKNOWN` is never used
[INFO] [stdout]  --> src/parser/dump.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const HPROF_GC_ROOT_UNKNOWN: u8 = 0xff;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JNI_GLOBAL` is never used
[INFO] [stdout]  --> src/parser/dump.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const HPROF_GC_ROOT_JNI_GLOBAL: u8 = 0x01;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JNI_LOCAL` is never used
[INFO] [stdout]   --> src/parser/dump.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HPROF_GC_ROOT_JNI_LOCAL: u8 = 0x02;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `force` is never read
[INFO] [stdout]   --> src/args.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct Args {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     force: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JAVA_FRAME` is never used
[INFO] [stdout]   --> src/parser/dump.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const HPROF_GC_ROOT_JAVA_FRAME: u8 = 0x03;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_force` is never used
[INFO] [stdout]   --> src/args.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl Args {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_force(&self) -> &bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_NATIVE_STACK` is never used
[INFO] [stdout]   --> src/parser/dump.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const HPROF_GC_ROOT_NATIVE_STACK: u8 = 0x04;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_STICKY_CLASS` is never used
[INFO] [stdout]   --> src/parser/dump.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const HPROF_GC_ROOT_STICKY_CLASS: u8 = 0x05;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_THREAD_BLOCK` is never used
[INFO] [stdout]   --> src/parser/dump.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const HPROF_GC_ROOT_THREAD_BLOCK: u8 = 0x06;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `file_name`, `id_size`, `version`, and `timestamp` are never read
[INFO] [stdout]   --> src/parser/hprof.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Hprof {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     file_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     id_size: Long,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 38 |     timestamp: Long,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hprof` 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: constant `HPROF_GC_ROOT_MONITOR_USED` is never used
[INFO] [stdout]   --> src/parser/dump.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const HPROF_GC_ROOT_MONITOR_USED: u8 = 0x07;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_THREAD_OBJ` is never used
[INFO] [stdout]   --> src/parser/dump.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const HPROF_GC_ROOT_THREAD_OBJ: u8 = 0x08;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `serial_num`, and `stack_trace_ser` are never read
[INFO] [stdout]   --> src/parser/reader.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Class {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     /// class object ID
[INFO] [stdout] 36 |     id: Long,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 37 |     /// class serial number (> 0)
[INFO] [stdout] 38 |     serial_num: Int,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 39 |     /// stack trace serial number
[INFO] [stdout] 40 |     stack_trace_ser: Int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Class` 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: constant `HPROF_GC_CLASS_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const HPROF_GC_CLASS_DUMP: u8 = 0x20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_INSTANCE_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HPROF_GC_INSTANCE_DUMP: u8 = 0x21;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_OBJ_ARRAY_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const HPROF_GC_OBJ_ARRAY_DUMP: u8 = 0x22;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `class_ser_num`, and `line_nr` are never read
[INFO] [stdout]   --> src/parser/reader.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Frame {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 72 |     id: Long,
[INFO] [stdout]    |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     class_ser_num: Int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 80 |     /// 行号
[INFO] [stdout] 81 |     line_nr: Int,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Frame` 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: constant `HPROF_GC_PRIM_ARRAY_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const HPROF_GC_PRIM_ARRAY_DUMP: u8 = 0x23;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dump` is never constructed
[INFO] [stdout]   --> src/parser/dump.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Dump {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `frame_ids` is never read
[INFO] [stdout]    --> src/parser/reader.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Trace {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 116 |     frame_ids: Vec<u64>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Trace` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_heap_dump` is never used
[INFO] [stdout]   --> src/parser/dump.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_heap_dump(reader: &mut Reader, len: Int) -> Result<Dump> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassObject` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct ClassObject {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalObject` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | struct NormalObject {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectArray` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | struct ObjectArray {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `thread_serial_num`, `trace_serial_num`, `t_name_index`, `g_name_index`, and `p_name_index` are never read
[INFO] [stdout]    --> src/parser/reader.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct Thread {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     thread_serial_num: Int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 |     trace_serial_num: Int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     t_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 150 |     g_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 151 |     p_name_index: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Thread` 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: struct `PrimitiveArray` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | struct PrimitiveArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJECT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:259:7
[INFO] [stdout]     |
[INFO] [stdout] 259 | const OBJECT_TYPE: u8 = 2;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOLEAN_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:260:7
[INFO] [stdout]     |
[INFO] [stdout] 260 | const BOOLEAN_TYPE: u8 = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `live_inst`, `allocate`, and `allocate_inst` are never read
[INFO] [stdout]    --> src/parser/reader.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct HeapSummary {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 175 |     live: Int,
[INFO] [stdout] 176 |     live_inst: Int,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 177 |     allocate: Long,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 178 |     allocate_inst: Long,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HeapSummary` 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: constant `CHAR_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:261:7
[INFO] [stdout]     |
[INFO] [stdout] 261 | const CHAR_TYPE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOAT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:262:7
[INFO] [stdout]     |
[INFO] [stdout] 262 | const FLOAT_TYPE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `depth` is never read
[INFO] [stdout]    --> src/parser/reader.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct ControlSettings {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 225 |     depth: Short,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ControlSettings` 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: constant `DOUBLE_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:263:7
[INFO] [stdout]     |
[INFO] [stdout] 263 | const DOUBLE_TYPE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BYTE_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:264:7
[INFO] [stdout]     |
[INFO] [stdout] 264 | const BYTE_TYPE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_byte` and `position` are never used
[INFO] [stdout]    --> src/parser/reader.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl Reader {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn read_byte(&mut self) -> Byte {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn position(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHORT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:265:7
[INFO] [stdout]     |
[INFO] [stdout] 265 | const SHORT_TYPE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_UNKNOWN` is never used
[INFO] [stdout]  --> src/parser/dump.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const HPROF_GC_ROOT_UNKNOWN: u8 = 0xff;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:266:7
[INFO] [stdout]     |
[INFO] [stdout] 266 | const INT_TYPE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JNI_GLOBAL` is never used
[INFO] [stdout]  --> src/parser/dump.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const HPROF_GC_ROOT_JNI_GLOBAL: u8 = 0x01;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:267:7
[INFO] [stdout]     |
[INFO] [stdout] 267 | const LONG_TYPE: u8 = 11;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JNI_LOCAL` is never used
[INFO] [stdout]   --> src/parser/dump.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HPROF_GC_ROOT_JNI_LOCAL: u8 = 0x02;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.07s
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/parser/dump.rs:269:6
[INFO] [stdout]     |
[INFO] [stdout] 269 | enum Value {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_JAVA_FRAME` is never used
[INFO] [stdout]   --> src/parser/dump.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const HPROF_GC_ROOT_JAVA_FRAME: u8 = 0x03;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_value` is never used
[INFO] [stdout]    --> src/parser/dump.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn get_value(reader: &mut Reader, t: Byte) -> Result<Value> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_NATIVE_STACK` is never used
[INFO] [stdout]   --> src/parser/dump.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const HPROF_GC_ROOT_NATIVE_STACK: u8 = 0x04;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Float` is never used
[INFO] [stdout]   --> src/io/channel.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type Float = f32;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_STICKY_CLASS` is never used
[INFO] [stdout]   --> src/parser/dump.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const HPROF_GC_ROOT_STICKY_CLASS: u8 = 0x05;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Double` is never used
[INFO] [stdout]   --> src/io/channel.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Double = f64;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_THREAD_BLOCK` is never used
[INFO] [stdout]   --> src/parser/dump.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const HPROF_GC_ROOT_THREAD_BLOCK: u8 = 0x06;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Boolean` is never used
[INFO] [stdout]   --> src/io/channel.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type Boolean = bool;
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_MONITOR_USED` is never used
[INFO] [stdout]   --> src/parser/dump.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const HPROF_GC_ROOT_MONITOR_USED: u8 = 0x07;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_ROOT_THREAD_OBJ` is never used
[INFO] [stdout]   --> src/parser/dump.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const HPROF_GC_ROOT_THREAD_OBJ: u8 = 0x08;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_CLASS_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const HPROF_GC_CLASS_DUMP: u8 = 0x20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_INSTANCE_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HPROF_GC_INSTANCE_DUMP: u8 = 0x21;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_bool`, `read_float`, `read_double`, and `position` are never used
[INFO] [stdout]    --> src/io/channel.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Channel {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn read_bool(&mut self) -> Result<Boolean> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn read_float(&mut self) -> Result<Float> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn read_double(&mut self) -> Result<Double> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn position(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_OBJ_ARRAY_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const HPROF_GC_OBJ_ARRAY_DUMP: u8 = 0x22;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Object` is never used
[INFO] [stdout]  --> src/store/base.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Object {}
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HPROF_GC_PRIM_ARRAY_DUMP` is never used
[INFO] [stdout]   --> src/parser/dump.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const HPROF_GC_PRIM_ARRAY_DUMP: u8 = 0x23;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DBStore` is never used
[INFO] [stdout]  --> src/store/base.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait DBStore {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dump` is never constructed
[INFO] [stdout]   --> src/parser/dump.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Dump {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/store/base.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Class {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_heap_dump` is never used
[INFO] [stdout]   --> src/parser/dump.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_heap_dump(reader: &mut Reader, len: Int) -> Result<Dump> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassObject` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct ClassObject {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `NAME`, `CREATE_SQL`, `INSERT_SQL`, and `UPDATE_SQL` are never used
[INFO] [stdout]   --> src/store/base.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Class {
[INFO] [stdout]    | ---------- associated constants in this implementation
[INFO] [stdout] 22 |     const NAME: &'static str = "class.data";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 23 |     const CREATE_SQL: &'static str = "CREATE TABLE IF NOT EXISTS tb_class (serial BIGINT PRIMARY KEY, id BIGINT, name_id BIGINT, nam...
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 24 |     const INSERT_SQL: &'static str = "INSERT INTO tb_class (serial, id, name_id, name, status) VALUES (?1, ?2, ?3, ?4, ?5)";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 25 |     const UPDATE_SQL: &'static str = "UPDATE tb_class set status = 0 where serial = ?1";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalObject` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | struct NormalObject {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectArray` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | struct ObjectArray {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrimitiveArray` is never constructed
[INFO] [stdout]    --> src/parser/dump.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | struct PrimitiveArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJECT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:259:7
[INFO] [stdout]     |
[INFO] [stdout] 259 | const OBJECT_TYPE: u8 = 2;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOLEAN_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:260:7
[INFO] [stdout]     |
[INFO] [stdout] 260 | const BOOLEAN_TYPE: u8 = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAME` is never used
[INFO] [stdout]  --> src/store/class.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NAME: &'static str = "class.data";
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHAR_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:261:7
[INFO] [stdout]     |
[INFO] [stdout] 261 | const CHAR_TYPE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CREATE_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CREATE_SQL: &'static str = "CREATE TABLE IF NOT EXISTS tb_class (serial BIGINT PRIMARY KEY, id BIGINT, name_id BIGINT, name TEX...
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const INSERT_SQL: &'static str = "INSERT INTO tb_class (serial, id, name_id, name, status) VALUES (?1, ?2, ?3, ?4, ?5)";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOAT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:262:7
[INFO] [stdout]     |
[INFO] [stdout] 262 | const FLOAT_TYPE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const UPDATE_SQL: &'static str = "UPDATE tb_class set status = 0 where serial = ?1";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOUBLE_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:263:7
[INFO] [stdout]     |
[INFO] [stdout] 263 | const DOUBLE_TYPE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BYTE_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:264:7
[INFO] [stdout]     |
[INFO] [stdout] 264 | const BYTE_TYPE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHORT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:265:7
[INFO] [stdout]     |
[INFO] [stdout] 265 | const SHORT_TYPE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INT_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:266:7
[INFO] [stdout]     |
[INFO] [stdout] 266 | const INT_TYPE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_TYPE` is never used
[INFO] [stdout]    --> src/parser/dump.rs:267:7
[INFO] [stdout]     |
[INFO] [stdout] 267 | const LONG_TYPE: u8 = 11;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/parser/dump.rs:269:6
[INFO] [stdout]     |
[INFO] [stdout] 269 | enum Value {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_value` is never used
[INFO] [stdout]    --> src/parser/dump.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn get_value(reader: &mut Reader, t: Byte) -> Result<Value> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Float` is never used
[INFO] [stdout]   --> src/io/channel.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type Float = f32;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Double` is never used
[INFO] [stdout]   --> src/io/channel.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Double = f64;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Boolean` is never used
[INFO] [stdout]   --> src/io/channel.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type Boolean = bool;
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_bool`, `read_float`, `read_double`, and `position` are never used
[INFO] [stdout]    --> src/io/channel.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Channel {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn read_bool(&mut self) -> Result<Boolean> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn read_float(&mut self) -> Result<Float> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn read_double(&mut self) -> Result<Double> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn position(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Object` is never used
[INFO] [stdout]  --> src/store/base.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Object {}
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DBStore` is never used
[INFO] [stdout]  --> src/store/base.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait DBStore {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/store/base.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Class {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `NAME`, `CREATE_SQL`, `INSERT_SQL`, and `UPDATE_SQL` are never used
[INFO] [stdout]   --> src/store/base.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Class {
[INFO] [stdout]    | ---------- associated constants in this implementation
[INFO] [stdout] 22 |     const NAME: &'static str = "class.data";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 23 |     const CREATE_SQL: &'static str = "CREATE TABLE IF NOT EXISTS tb_class (serial BIGINT PRIMARY KEY, id BIGINT, name_id BIGINT, nam...
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 24 |     const INSERT_SQL: &'static str = "INSERT INTO tb_class (serial, id, name_id, name, status) VALUES (?1, ?2, ?3, ?4, ?5)";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 25 |     const UPDATE_SQL: &'static str = "UPDATE tb_class set status = 0 where serial = ?1";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAME` is never used
[INFO] [stdout]  --> src/store/class.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NAME: &'static str = "class.data";
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CREATE_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CREATE_SQL: &'static str = "CREATE TABLE IF NOT EXISTS tb_class (serial BIGINT PRIMARY KEY, id BIGINT, name_id BIGINT, name TEX...
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const INSERT_SQL: &'static str = "INSERT INTO tb_class (serial, id, name_id, name, status) VALUES (?1, ?2, ?3, ?4, ?5)";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_SQL` is never used
[INFO] [stdout]  --> src/store/class.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const UPDATE_SQL: &'static str = "UPDATE tb_class set status = 0 where serial = ?1";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "84e881b5f6afb06262b37fbe47d84a70678c81120fcb58ee758da2b27358a714", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84e881b5f6afb06262b37fbe47d84a70678c81120fcb58ee758da2b27358a714", kill_on_drop: false }`
[INFO] [stdout] 84e881b5f6afb06262b37fbe47d84a70678c81120fcb58ee758da2b27358a714
