[INFO] fetching crate jvmrs 0.1.2...
[INFO] testing jvmrs-0.1.2 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate jvmrs 0.1.2 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate jvmrs 0.1.2
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate jvmrs 0.1.2
[INFO] tweaked toml for crates.io crate jvmrs 0.1.2 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate jvmrs 0.1.2 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate jvmrs 0.1.2 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded inkwell_internals v0.10.0
[INFO] [stderr]   Downloaded wasm-encoder v0.25.0
[INFO] [stderr]   Downloaded cranelift-object v0.110.3
[INFO] [stderr]   Downloaded cranelift-module v0.110.3
[INFO] [stderr]   Downloaded inkwell v0.5.0
[INFO] [stderr]   Downloaded llvm-sys v180.0.0
[INFO] [stderr]   Downloaded cranelift-control v0.110.3
[INFO] [stderr]   Downloaded cranelift-bitset v0.110.3
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.110.3
[INFO] [stderr]   Downloaded regalloc2 v0.9.3
[INFO] [stderr]   Downloaded cranelift-entity v0.110.3
[INFO] [stderr]   Downloaded cranelift-native v0.110.3
[INFO] [stderr]   Downloaded wasmtime-jit-icache-coherence v23.0.3
[INFO] [stderr]   Downloaded region v2.2.0
[INFO] [stderr]   Downloaded cranelift v0.110.3
[INFO] [stderr]   Downloaded cranelift-jit v0.110.3
[INFO] [stderr]   Downloaded cranelift-bforest v0.110.3
[INFO] [stderr]   Downloaded cranelift-frontend v0.110.3
[INFO] [stderr]   Downloaded cranelift-isle v0.110.3
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.110.3
[INFO] [stderr]   Downloaded cranelift-codegen v0.110.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6
[INFO] running `Command { std: "docker" "start" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cranelift-isle v0.110.3
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.110.3
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling cranelift-bitset v0.110.3
[INFO] [stderr]    Compiling slice-group-by v0.3.1
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling cranelift-control v0.110.3
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling gimli v0.28.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.110.3
[INFO] [stderr]    Compiling region v2.2.0
[INFO] [stderr]    Compiling humantime v2.3.0
[INFO] [stderr]    Compiling cranelift-entity v0.110.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling wasmtime-jit-icache-coherence v23.0.3
[INFO] [stderr]    Compiling cranelift-bforest v0.110.3
[INFO] [stderr]    Compiling hashbrown v0.13.2
[INFO] [stderr]    Compiling regalloc2 v0.9.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling cranelift-codegen v0.110.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling cranelift-module v0.110.3
[INFO] [stderr]    Compiling cranelift-native v0.110.3
[INFO] [stderr]    Compiling cranelift-frontend v0.110.3
[INFO] [stderr]    Compiling cranelift-object v0.110.3
[INFO] [stderr]    Compiling cranelift-jit v0.110.3
[INFO] [stderr]    Compiling cranelift v0.110.3
[INFO] [stderr]    Compiling jvmrs v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `GROWTH_FACTOR` is never used
[INFO] [stdout]   --> src/allocator.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ArenaAllocator {
[INFO] [stdout]    | ------------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, and `current_exception` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_loaded_class_count`, `get_memory_usage`, and `get_gc_count` are never used
[INFO] [stdout]    --> src/repl.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 449 | trait ReplInterpreterExt {
[INFO] [stdout]     |       ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 453 |     fn get_loaded_class_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 454 |     fn get_memory_usage(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 455 |     fn get_gc_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArenaAllocator`, `MemoryAllocator`, `MemoryStats`, `MemoryType`, `PrimitiveArrayType`, and `TlabAllocator`
[INFO] [stdout]   --> src/memory/mod.rs:68:28
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub use memory_allocator::{MemoryAllocator, ArenaAllocator, TlabAllocator, MemoryType, PrimitiveArrayType, MemoryStats};
[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 variable: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]    --> src/main.rs:492:17
[INFO] [stdout]     |
[INFO] [stdout] 492 |     if let Some(ref output_path) = wasm_output {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArenaSlot` is never used
[INFO] [stdout]   --> src/allocator.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum ArenaSlot {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArenaAllocator` is never constructed
[INFO] [stdout]   --> src/allocator.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ArenaAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:37:11
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ArenaAllocator {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  36 |     /// Initial capacity (number of object slots)
[INFO] [stdout]  37 |     const INITIAL_CAPACITY: usize = 256;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout]  41 |
[INFO] [stdout]  42 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn addr_to_index(&self, addr: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn iter_objects(&self) -> impl Iterator<Item = (u32, &HeapObject)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrayArena` is never constructed
[INFO] [stdout]    --> src/allocator.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ArrayArena {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:164:11
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl ArrayArena {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 164 |     const INITIAL_CAPACITY: usize = 128;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |
[INFO] [stdout] 166 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn allocate(&mut self, array: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn iter_arrays(&self) -> impl Iterator<Item = (u32, &HeapArray)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]    --> src/class_cache.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn default_cache_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic`, `minor_version`, `major_version`, `access_flags`, and `fields` are never read
[INFO] [stdout]   --> src/class_file.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ClassFile {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 13 |     pub magic: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 14 |     pub minor_version: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub major_version: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub constant_pool: Vec<ConstantPoolEntry>,
[INFO] [stdout] 17 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fields: Vec<FieldInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reference_kind` is never read
[INFO] [stdout]   --> src/class_file.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     ConstantMethodHandle {
[INFO] [stdout]    |     -------------------- field in this variant
[INFO] [stdout] 67 |         reference_kind: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor_index` is never read
[INFO] [stdout]   --> src/class_file.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ConstantMethodType {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 71 |         descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access_flags`, `name_index`, `descriptor_index`, and `attributes` are never read
[INFO] [stdout]   --> src/class_file.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 82 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 83 |     pub name_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 84 |     pub descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     pub attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAttributeLength` is never constructed
[INFO] [stdout]    --> src/class_file.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub enum ParseError {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 110 |     InvalidAttributeLength,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/class_loader.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl ClassLoader {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  31 |     /// Create a new class loader with the given classpath
[INFO] [stdout]  32 |     pub fn new(classpath: Vec<PathBuf>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn metrics(&self) -> &ClassLoadMetrics {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn with_cache_dir(mut self, cache_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn get_loaded_classes(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn add_classpath(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn get_classpath(&self) -> &[PathBuf] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn reload_class(&mut self, class_name: &str) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_classpath` is never used
[INFO] [stdout]    --> src/class_loader.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub fn parse_classpath(classpath_str: &str) -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_system_classpath` is never used
[INFO] [stdout]    --> src/class_loader.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn get_system_classpath() -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 80 |     /// Invalid magic number (not 0xCAFEBABE)
[INFO] [stdout] 81 |     InvalidMagic(u32),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 82 |     /// Unsupported class file version
[INFO] [stdout] 83 |     UnsupportedVersion(u16, u16),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     /// Invalid constant pool tag
[INFO] [stdout] 85 |     InvalidConstantPoolTag(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 86 |     /// Invalid attribute length
[INFO] [stdout] 87 |     InvalidAttributeLength,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     /// Invalid UTF-8 string in constant pool
[INFO] [stdout] 89 |     InvalidUtf8String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     /// Invalid method descriptor
[INFO] [stdout] 91 |     InvalidMethodDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     /// Invalid field descriptor
[INFO] [stdout] 93 |     InvalidFieldDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     /// Invalid opcode
[INFO] [stdout] 95 |     InvalidOpcode(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 96 |     /// Invalid bytecode
[INFO] [stdout] 97 |     InvalidBytecode(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub enum RuntimeError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 143 |     StackOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     ClassNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     InvalidTypeConversion(String, String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     ArithmeticOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     InvalidArrayType(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     /// Invalid array length
[INFO] [stdout] 169 |     InvalidArrayLength(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     IllegalState(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     InvalidOpcode(u8),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 182 |     /// Exception thrown
[INFO] [stdout] 183 |     ExceptionThrown(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     ArrayStoreException,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     IllegalAccessException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 |     /// Instantiation exception
[INFO] [stdout] 193 |     InstantiationException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     /// String index out of bounds
[INFO] [stdout] 195 |     StringIndexOutOfBounds(usize, usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuntimeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub enum MemoryError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 262 |     /// Out of memory
[INFO] [stdout] 263 |     OutOfMemory,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     HeapCorruption,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     /// Garbage collection failed
[INFO] [stdout] 275 |     GcError(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 276 |     /// Memory limit exceeded
[INFO] [stdout] 277 |     MemoryLimitExceeded(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 278 |     /// Invalid object header
[INFO] [stdout] 279 |     InvalidObjectHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 280 |     /// Invalid array header
[INFO] [stdout] 281 |     InvalidArrayHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 282 |     /// Memory allocation failed
[INFO] [stdout] 283 |     AllocationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     ArrayIndexOutOfBounds(usize, usize), // index, length
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     CompressedOopsOverflow(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub enum ClassLoadingError {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] 345 |     /// Class file not found
[INFO] [stdout] 346 |     ClassFileNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     ClassCircularityError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     UnsupportedClassVersion(String, u16, u16),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 355 |     /// Class verification failed
[INFO] [stdout] 356 |     VerificationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 357 |     /// Linkage error
[INFO] [stdout] 358 |     LinkageError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 359 |     /// Illegal access error
[INFO] [stdout] 360 |     IllegalAccessError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     /// Instantiation error
[INFO] [stdout] 362 |     InstantiationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 363 |     /// Class loader constraint violation
[INFO] [stdout] 364 |     ClassLoaderConstraintViolation(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassLoadingError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NativeLibraryNotFound`, `NativeLibraryLoadFailed`, and `UnsatisfiedLinkError` are never constructed
[INFO] [stdout]    --> src/error.rs:408:5
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub enum NativeError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 408 |     NativeLibraryNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 409 |     /// Native library load failed
[INFO] [stdout] 410 |     NativeLibraryLoadFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 411 |     /// Unsatisfied link error
[INFO] [stdout] 412 |     UnsatisfiedLinkError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NativeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JvmResult` is never used
[INFO] [stdout]    --> src/error.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub type JvmResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InterpreterResult` is never used
[INFO] [stdout]    --> src/error.rs:444:10
[INFO] [stdout]     |
[INFO] [stdout] 444 | pub type InterpreterResult = Result<(), JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ClassFileResult` is never used
[INFO] [stdout]    --> src/error.rs:447:10
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub type ClassFileResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MemoryResult` is never used
[INFO] [stdout]    --> src/error.rs:450:10
[INFO] [stdout]     |
[INFO] [stdout] 450 | pub type MemoryResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_runtime_error` is never used
[INFO] [stdout]    --> src/error.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn to_runtime_error<T: ToString>(msg: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_parse_error` is never used
[INFO] [stdout]    --> src/error.rs:458:8
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub fn to_parse_error<T: Into<ParseError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_memory_error` is never used
[INFO] [stdout]    --> src/error.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub fn to_memory_error<T: Into<MemoryError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToJvmError` is never used
[INFO] [stdout]    --> src/error.rs:478:11
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub trait ToJvmError<T> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Generation` is never used
[INFO] [stdout]   --> src/gc.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Generation {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenObject` is never constructed
[INFO] [stdout]   --> src/gc.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct GenObject {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerationalHeap` is never constructed
[INFO] [stdout]   --> src/gc.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct GenerationalHeap {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gc.rs:57:15
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl GenerationalHeap {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  57 |     pub const DEFAULT_PROMOTION_THRESHOLD: u8 = 8;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  58 |
[INFO] [stdout]  59 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn alloc_addr(&mut self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn allocate_string(&mut self, data: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn allocate_array(&mut self, array_type: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn get_gen_object(&self, addr: u32) -> Option<&GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn get_gen_object_mut(&mut self, addr: u32) -> Option<&mut GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn mark_from_roots(&mut self, addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn collect_references(&self, addr: u32) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn minor_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn major_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn gc_stats(&self) -> GcStats {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn mark_object(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn array_length(&self, addr: u32) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn array_get(&self, addr: u32, index: usize) -> Result<Value, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn array_set(&mut self, addr: u32, index: usize, value: Value) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn monitor_enter(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 548 |     pub fn monitor_exit(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopedRoot` is never constructed
[INFO] [stdout]    --> src/gc.rs:585:12
[INFO] [stdout]     |
[INFO] [stdout] 585 | pub struct ScopedRoot {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `addr` are never used
[INFO] [stdout]    --> src/gc.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 590 | impl ScopedRoot {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 591 |     pub fn new(addr: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn addr(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_roots` is never used
[INFO] [stdout]    --> src/gc.rs:618:8
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub fn get_roots() -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GcStats` is never constructed
[INFO] [stdout]    --> src/gc.rs:624:12
[INFO] [stdout]     |
[INFO] [stdout] 624 | pub struct GcStats {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_root` is never used
[INFO] [stdout]    --> src/gc.rs:634:8
[INFO] [stdout]     |
[INFO] [stdout] 634 | pub fn add_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_root` is never used
[INFO] [stdout]    --> src/gc.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn remove_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `method` is never read
[INFO] [stdout]   --> src/inline_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct InlineCacheEntry {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub method: Arc<MethodInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InlineCacheEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `clear` are never used
[INFO] [stdout]    --> src/inline_cache.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl CallSiteCache {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn stats(&self) -> CacheStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheStats` is never constructed
[INFO] [stdout]    --> src/inline_cache.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct CacheStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_stats` and `clear_all` are never used
[INFO] [stdout]    --> src/inline_cache.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl InlineCacheManager {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_stats(&self) -> Vec<((String, String, String, usize), CacheStats)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_all(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_debugger` is never used
[INFO] [stdout]   --> src/memory/mod.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Memory {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn set_debugger(&mut self, debugger: JvmDebugger) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Heap {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     marked: HashSet<u32>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Heap` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/heap.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Heap {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn collect_garbage(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap_object.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct HeapObject {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub marked: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HeapObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MemoryType` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum MemoryType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrimitiveArrayType` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PrimitiveArrayType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryStats` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct MemoryStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MemoryAllocator` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub trait MemoryAllocator {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArenaAllocator` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ArenaAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryArena` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct MemoryArena {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add_arena` are never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl ArenaAllocator {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new arena allocator
[INFO] [stdout] 73 |     pub fn new(arena_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn add_arena(&mut self, size: usize) -> Result<(), MemoryError> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TlabAllocator` is never constructed
[INFO] [stdout]    --> src/memory/memory_allocator.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub struct TlabAllocator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_or_create_tlab` are never used
[INFO] [stdout]    --> src/memory/memory_allocator.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl TlabAllocator {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 239 |     pub fn new(tlab_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn get_or_create_tlab(&mut self) -> &mut Tlab {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tlab` is never constructed
[INFO] [stdout]    --> src/memory/memory_allocator.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | struct Tlab {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/monitor.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl Monitor {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn is_owned_by(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn is_biased_toward(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn revoke_bias(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn lock_stats(&self) -> MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn wait(&mut self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn notify(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn notify_all(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonitorStats` is never constructed
[INFO] [stdout]    --> src/memory/monitor.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_frame`, `pop_frame`, `current_frame`, `current_frame_mut`, and `depth` are never used
[INFO] [stdout]   --> src/memory/stack.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl JVMStack {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn push_frame(&mut self, frame: StackFrame) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn pop_frame(&mut self) -> Option<StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn current_frame(&self) -> Option<&StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn current_frame_mut(&mut self) -> Option<&mut StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn depth(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Boolean`, `Byte`, `Char`, and `Short` are never constructed
[INFO] [stdout]  --> src/memory/value.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Value {
[INFO] [stdout]   |          ----- variants in this enum
[INFO] [stdout] 6 |     Boolean(bool),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     Byte(i8),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     Char(u16),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     Short(i16),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_reference` is never used
[INFO] [stdout]   --> src/memory/value.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_reference(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Annotation` is never constructed
[INFO] [stdout]   --> src/annotations.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Annotation {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ElementValue` is never used
[INFO] [stdout]   --> src/annotations.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ElementValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_attribute` is never used
[INFO] [stdout]   --> src/annotations.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn find_attribute<'a>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_annotations` is never used
[INFO] [stdout]   --> src/annotations.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn parse_annotations(class: &ClassFile, attr: &AttributeInfo) -> Vec<Annotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_element_value` is never used
[INFO] [stdout]   --> src/annotations.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn parse_element_value(class: &ClassFile, data: &[u8], pos: &mut usize) -> ElementValue {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_annotations` is never used
[INFO] [stdout]    --> src/annotations.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn get_annotations(class: &ClassFile, attrs: &[AttributeInfo]) -> Vec<Annotation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_signature` is never used
[INFO] [stdout]    --> src/annotations.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn get_signature(class: &ClassFile, attrs: &[AttributeInfo]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_class_annotations` and `get_class_signature` are never used
[INFO] [stdout]    --> src/annotations.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl ClassFile {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 144 |     /// Get class-level annotations
[INFO] [stdout] 145 |     pub fn get_class_annotations(&self) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_class_signature(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_annotations` and `get_signature_attr` are never used
[INFO] [stdout]    --> src/annotations.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl MethodInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 156 |     /// Get method-level annotations
[INFO] [stdout] 157 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn get_signature_attr(&self, class: &ClassFile) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_annotations` is never used
[INFO] [stdout]    --> src/annotations.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl FieldInfo {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 168 |     /// Get field-level annotations
[INFO] [stdout] 169 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, `current_exception`, and `reflection_api` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) reflection_api: ReflectionApi,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/interpreter/mod.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl Interpreter {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn with_classpath(classpath: Vec<PathBuf>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub fn memory_mut(&mut self) -> &mut Memory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn new_instance(&mut self, class_name: &str, args: &[Value]) -> Result<Value, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn get_field_value(&self, obj: &Value, field_name: &str) -> Result<Value, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub fn set_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn get_object_class(&self, obj: &Value) -> Result<String, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 596 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn build_descriptor_for_args(args: &[Value]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     fn invoke_constructor_for_reflection(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 683 |     pub fn get_loaded_class_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 688 |     pub fn get_memory_usage(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 693 |     pub fn get_gc_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     pub fn is_jit_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn jit_manager(&mut self) -> Option<&mut JitManager> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 719 |     pub fn is_class_loaded(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn load_class<P: AsRef<Path>>(&mut self, path: P) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 741 |     pub fn get_class(&self, name: &str) -> Option<&ClassFile> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 746 |     pub fn get_reflection_api(&self) -> &ReflectionApi {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     pub fn get_class_reflection(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 824 |     pub fn array_set_value(&mut self, array_ref: u32, index: i32, value: Value) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn array_set_int(&mut self, array_ref: u32, index: i32, value: i32) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 836 |     pub fn array_get_value(&mut self, array_ref: u32, index: i32) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |     pub fn array_get_int(&mut self, array_ref: u32, index: i32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     pub fn array_get_length(&mut self, array_ref: u32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 854 |     pub fn new_array_object(&mut self, component_type: &str, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 863 |     pub fn new_array_bool(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 872 |     pub fn new_array_byte(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 881 |     pub fn new_array_char(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 890 |     pub fn new_array_short(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 899 |     pub fn new_array_long(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 908 |     pub fn new_array_float(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 917 |     pub fn new_array_double(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 926 |     pub fn new_array_int(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BytecodeExecutor` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait BytecodeExecutor {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MemoryManager` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait MemoryManager {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ClassManager` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait ClassManager {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JitManagerProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait JitManagerProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DebugProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub trait DebugProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NativeMethodHandler` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub trait NativeMethodHandler {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RuntimeConfig` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:136:11
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub trait RuntimeConfig {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JvmInterpreter` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub trait JvmInterpreter: 
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultInterpreterDelegate` is never constructed
[INFO] [stdout]    --> src/interpreter/traits.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct DefaultInterpreterDelegate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_1` is never used
[INFO] [stdout]  --> src/native.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const JNI_VERSION_1_1: i32 = 0x00010001;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_2` is never used
[INFO] [stdout]  --> src/native.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const JNI_VERSION_1_2: i32 = 0x00010002;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_4` is never used
[INFO] [stdout]  --> src/native.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const JNI_VERSION_1_4: i32 = 0x00010004;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_6` is never used
[INFO] [stdout]   --> src/native.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const JNI_VERSION_1_6: i32 = 0x00010006;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_8` is never used
[INFO] [stdout]   --> src/native.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const JNI_VERSION_1_8: i32 = 0x00010008;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JNINativeInterface_` is never constructed
[INFO] [stdout]   --> src/native.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct JNINativeInterface_ {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JNINativeMethod` is never used
[INFO] [stdout]   --> src/native.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type JNINativeMethod = unsafe extern "C" fn(*mut c_void, *mut c_void, *mut *mut jvalue);
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `jvalue` is never used
[INFO] [stdout]   --> src/native.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub union jvalue {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/native.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait NativeMethod: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/native.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct SimpleNativeMethod {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 60 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_native` is never used
[INFO] [stdout]    --> src/native.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NativeRegistry {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn is_native(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_to_jvalue` is never used
[INFO] [stdout]    --> src/native.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn value_to_jvalue(value: Value) -> jvalue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jvalue_to_value` is never used
[INFO] [stdout]    --> src/native.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn jvalue_to_value(jvalue: jvalue) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct FieldReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MethodReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct MethodReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstructorReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ConstructorReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ClassReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `descriptor_to_type` is never used
[INFO] [stdout]   --> src/reflection.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn descriptor_to_type(descriptor: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `class_to_reflection` is never used
[INFO] [stdout]    --> src/reflection.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn class_to_reflection(class: &ClassFile) -> ClassReflection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_method_params` is never used
[INFO] [stdout]    --> src/reflection.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn parse_method_params(descriptor: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_return_type` is never used
[INFO] [stdout]    --> src/reflection.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn parse_return_type(descriptor: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/reflection.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl ReflectionApi {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn get_class(&self, class_name: &str) -> Option<ClassReflection> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn get_fields(&self, class_name: &str) -> Vec<FieldReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn get_methods(&self, class_name: &str) -> Vec<MethodReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn get_constructors(&self, class_name: &str) -> Vec<ConstructorReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn get_super_class(&self, class_name: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn get_interfaces(&self, class_name: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn get_class_modifiers(&self, class_name: &str) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn is_interface(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn is_abstract(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn is_public(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn is_field_public(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn is_field_static(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn is_method_public(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn is_method_static(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub fn new_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn set_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn get_object_class(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUBLIC` is never used
[INFO] [stdout]    --> src/reflection.rs:503:15
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub const PUBLIC: u16 = 0x0001;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIVATE` is never used
[INFO] [stdout]    --> src/reflection.rs:504:15
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub const PRIVATE: u16 = 0x0002;
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTECTED` is never used
[INFO] [stdout]    --> src/reflection.rs:505:15
[INFO] [stdout]     |
[INFO] [stdout] 505 |     pub const PROTECTED: u16 = 0x0004;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATIC` is never used
[INFO] [stdout]    --> src/reflection.rs:506:15
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub const STATIC: u16 = 0x0008;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FINAL` is never used
[INFO] [stdout]    --> src/reflection.rs:507:15
[INFO] [stdout]     |
[INFO] [stdout] 507 |     pub const FINAL: u16 = 0x0010;
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYNCHRONIZED` is never used
[INFO] [stdout]    --> src/reflection.rs:508:15
[INFO] [stdout]     |
[INFO] [stdout] 508 |     pub const SYNCHRONIZED: u16 = 0x0020;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOLATILE` is never used
[INFO] [stdout]    --> src/reflection.rs:509:15
[INFO] [stdout]     |
[INFO] [stdout] 509 |     pub const VOLATILE: u16 = 0x0040;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSIENT` is never used
[INFO] [stdout]    --> src/reflection.rs:510:15
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub const TRANSIENT: u16 = 0x0080;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NATIVE` is never used
[INFO] [stdout]    --> src/reflection.rs:511:15
[INFO] [stdout]     |
[INFO] [stdout] 511 |     pub const NATIVE: u16 = 0x0100;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE` is never used
[INFO] [stdout]    --> src/reflection.rs:512:15
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub const INTERFACE: u16 = 0x0200;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ABSTRACT` is never used
[INFO] [stdout]    --> src/reflection.rs:513:15
[INFO] [stdout]     |
[INFO] [stdout] 513 |     pub const ABSTRACT: u16 = 0x0400;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRICTFP` is never used
[INFO] [stdout]    --> src/reflection.rs:514:15
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub const STRICTFP: u16 = 0x0800;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC` is never used
[INFO] [stdout]  --> src/serialization.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC: &[u8; 4] = b"JVRS";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERSION` is never used
[INFO] [stdout]   --> src/serialization.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_NULL` is never used
[INFO] [stdout]   --> src/serialization.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const TAG_NULL: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_INT` is never used
[INFO] [stdout]   --> src/serialization.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const TAG_INT: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_LONG` is never used
[INFO] [stdout]   --> src/serialization.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const TAG_LONG: u8 = 2;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FLOAT` is never used
[INFO] [stdout]   --> src/serialization.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TAG_FLOAT: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_DOUBLE` is never used
[INFO] [stdout]   --> src/serialization.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const TAG_DOUBLE: u8 = 4;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_REFERENCE` is never used
[INFO] [stdout]   --> src/serialization.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const TAG_REFERENCE: u8 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_ARRAY_REF` is never used
[INFO] [stdout]   --> src/serialization.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const TAG_ARRAY_REF: u8 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BOOLEAN` is never used
[INFO] [stdout]   --> src/serialization.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const TAG_BOOLEAN: u8 = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BYTE` is never used
[INFO] [stdout]   --> src/serialization.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const TAG_BYTE: u8 = 8;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_CHAR` is never used
[INFO] [stdout]   --> src/serialization.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TAG_CHAR: u8 = 9;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_SHORT` is never used
[INFO] [stdout]   --> src/serialization.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const TAG_SHORT: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_serializable` is never used
[INFO] [stdout]   --> src/serialization.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn is_serializable(_class_name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_serializable_class` is never used
[INFO] [stdout]   --> src/serialization.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn is_serializable_class(class: &ClassFile) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_len_prefixed_string` is never used
[INFO] [stdout]   --> src/serialization.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn write_len_prefixed_string<W: Write>(w: &mut W, s: &str) -> std::io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_len_prefixed_string` is never used
[INFO] [stdout]   --> src/serialization.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn read_len_prefixed_string<R: Read>(r: &mut R) -> std::io::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_value` is never used
[INFO] [stdout]   --> src/serialization.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn write_value<W: Write>(w: &mut W, v: &Value) -> std::io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_value` is never used
[INFO] [stdout]    --> src/serialization.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn read_value<R: Read>(r: &mut R) -> std::io::Result<Value> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_object` is never used
[INFO] [stdout]    --> src/serialization.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn serialize_object(obj: &HeapObject) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_object` is never used
[INFO] [stdout]    --> src/serialization.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn deserialize_object(data: &[u8], _class_name: &str) -> Result<HeapObject, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_value` is never used
[INFO] [stdout]    --> src/serialization.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn serialize_value(v: &Value) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_value` is never used
[INFO] [stdout]    --> src/serialization.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn deserialize_value(data: &[u8]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_html_fragment` is never used
[INFO] [stdout]   --> src/visualization.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn export_html_fragment(frames: &[StackFrame]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `html_escape` is never used
[INFO] [stdout]   --> src/visualization.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn html_escape(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instruction_count`, `total_time_ns`, and `last_compiled` are never read
[INFO] [stdout]   --> src/jit.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MethodProfile {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub instruction_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 68 |     /// Time spent in this method (nanoseconds)
[INFO] [stdout] 69 |     pub total_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub last_compiled: Option<Instant>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_instructions` and `record_time` are never used
[INFO] [stdout]   --> src/jit.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl MethodProfile {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn record_instructions(&mut self, count: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn record_time(&mut self, time_ns: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_method_size` is never read
[INFO] [stdout]    --> src/jit.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct TieredCompilationConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub max_method_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TieredCompilationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IrGenerationError` is never constructed
[INFO] [stdout]    --> src/jit.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub enum JitError {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 149 |     IrGenerationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JitError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `level` are never read
[INFO] [stdout]    --> src/jit.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct CompiledCode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 174 |     /// Function name
[INFO] [stdout] 175 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub level: CompilationLevel,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompiledCode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `config` and `set_config` are never used
[INFO] [stdout]    --> src/jit.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl CraneliftJitCompiler {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn config(&self) -> &TieredCompilationConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn set_config(&mut self, config: TieredCompilationConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `link_executable` is never used
[INFO] [stdout]    --> src/jit.rs:392:12
[INFO] [stdout]     |
[INFO] [stdout] 380 | impl AotCompiler {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn link_executable(objects: &[PathBuf], output_path: &Path) -> JitResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_or_compile_method` and `is_compiled` are never used
[INFO] [stdout]    --> src/jit.rs:616:12
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl JitManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn get_or_compile_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn is_compiled(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmIrGenerator` is never constructed
[INFO] [stdout]    --> src/jit.rs:573:16
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub struct LlvmIrGenerator {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/jit.rs:576:16
[INFO] [stdout]     |
[INFO] [stdout] 575 |     impl LlvmIrGenerator {
[INFO] [stdout]     |     -------------------- associated function in this implementation
[INFO] [stdout] 576 |         pub fn new(_module_name: &str) -> Result<Self, String> {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trace_classes`, `trace_methods`, and `max_stack_frames` are never read
[INFO] [stdout]   --> src/debug.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DebugConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub trace_classes: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// Enable method entry/exit logging
[INFO] [stdout] 15 |     pub trace_methods: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Maximum number of stack frames to log (None for all)
[INFO] [stdout] 17 |     pub max_stack_frames: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DebugConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/debug.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl JvmDebugger {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn log_method_entry(&self, class_name: &str, method_name: &str, method_descriptor: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn log_method_exit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn log_class_loaded(&self, class_name: &str, source: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn log_memory_access(&self, address: u32, operation: &str, value: Option<&Value>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn log_exception(&self, exception: &str, handler_pc: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn log_gc(&self, freed_objects: usize, freed_bytes: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     pub fn instruction_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn reset_instruction_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rng_seed`, `fixed_timestamp_ns`, and `max_pause_ns` are never read
[INFO] [stdout]   --> src/deterministic.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DeterministicConfig {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout]  9 |     /// Fixed seed for any RNG (0 = use system time when disabled)
[INFO] [stdout] 10 |     pub rng_seed: u64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     /// Use fixed "epoch" timestamp instead of actual time
[INFO] [stdout] 12 |     pub fixed_timestamp_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     /// Target max pause time in ns (for real-time / HFT; advisory)
[INFO] [stdout] 14 |     pub max_pause_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeterministicConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `blockchain`, `realtime`, and `hft` are never used
[INFO] [stdout]   --> src/deterministic.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl DeterministicConfig {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 28 |     /// Preset for blockchain / smart contract execution
[INFO] [stdout] 29 |     pub fn blockchain() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn realtime(max_pause_ns: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn hft() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeterministicMode` is never constructed
[INFO] [stdout]   --> src/deterministic.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct DeterministicMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enabled`, `set_enabled`, `rng_seed`, and `timestamp_ns` are never used
[INFO] [stdout]   --> src/deterministic.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl DeterministicMode {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 59 |     pub fn new(config: DeterministicConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn rng_seed(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn timestamp_ns(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_max_samples`, `set_enabled`, `method_counts`, `method_time_ns`, and `hotspots` are never used
[INFO] [stdout]    --> src/profiler.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl Profiler {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn with_max_samples(max_samples: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn method_counts(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn method_time_ns(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn hotspots(&self, top_n: usize) -> Vec<(String, u64, u64)> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `is_enabled`, and `clear` are never used
[INFO] [stdout]    --> src/trace.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TraceRecorder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn with_capacity(max_steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Proxy` is never constructed
[INFO] [stdout]  --> src/aop.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Proxy {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdviceKind` is never used
[INFO] [stdout]   --> src/aop.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum AdviceKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pointcut` is never constructed
[INFO] [stdout]   --> src/aop.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Pointcut {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AopRegistry` is never constructed
[INFO] [stdout]   --> src/aop.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AopRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_advice`, and `matches` are never used
[INFO] [stdout]   --> src/aop.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl AopRegistry {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn add_advice(&mut self, pointcut: Pointcut, kind: AdviceKind) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn matches(&self, class_name: &str, method_name: &str) -> Option<AdviceKind> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_proxy` is never used
[INFO] [stdout]   --> src/aop.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn create_proxy(target_class: String, target_ref: u32, interceptor: Option<String>) -> Proxy {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `K8sOperatorConfig` is never constructed
[INFO] [stdout]  --> src/cloud.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct K8sOperatorConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DistributedObjectRef` is never constructed
[INFO] [stdout]   --> src/cloud.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DistributedObjectRef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JavaExtension` is never used
[INFO] [stdout]   --> src/extensions.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait JavaExtension: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NativeCallback` is never used
[INFO] [stdout]   --> src/extensions.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | type NativeCallback = Arc<dyn Fn(&[Value]) -> Result<Value, String> + Send + Sync>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExtensionRegistry` is never constructed
[INFO] [stdout]   --> src/extensions.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ExtensionRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_native`, `has_native`, `invoke_native`, `load`, and `loaded_extensions` are never used
[INFO] [stdout]    --> src/extensions.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn register_native(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn has_native(&self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn invoke_native(&self, key: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn load(&self, ext: &dyn JavaExtension) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn loaded_extensions(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_REGISTRY` is never used
[INFO] [stdout]    --> src/extensions.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | static GLOBAL_REGISTRY: OnceLock<RwLock<ExtensionRegistry>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `global` is never used
[INFO] [stdout]    --> src/extensions.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 151 |     /// Global extension registry (used by Interpreter when interop is enabled)
[INFO] [stdout] 152 |     pub fn global() -> &'static RwLock<ExtensionRegistry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotReloadManager` is never constructed
[INFO] [stdout]   --> src/hot_reload.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HotReloadManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_enabled`, `register_reloadable`, `class_file_changed`, `record_class_loaded`, and `replace_method` are never used
[INFO] [stdout]   --> src/hot_reload.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HotReloadManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn register_reloadable(&mut self, class: &str, _method: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn class_file_changed(&self, path: &Path) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn record_class_loaded(&mut self, class_name: &str, path: &Path) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn replace_method(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stack_overflow_check` is never read
[INFO] [stdout]   --> src/security.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SecurityConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub stack_overflow_check: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_stack_overflow`, `violation_count`, and `config` are never used
[INFO] [stdout]    --> src/security.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Sanitizer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn check_stack_overflow(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn violation_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn config(&self) -> &SecurityConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.15s
[INFO] running `Command { std: "docker" "inspect" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling hashbrown v0.13.2
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling regalloc2 v0.9.3
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling cranelift-codegen v0.110.3
[INFO] [stderr]    Compiling cranelift-module v0.110.3
[INFO] [stderr]    Compiling cranelift-frontend v0.110.3
[INFO] [stderr]    Compiling cranelift-native v0.110.3
[INFO] [stderr]    Compiling cranelift-object v0.110.3
[INFO] [stderr]    Compiling cranelift-jit v0.110.3
[INFO] [stderr]    Compiling cranelift v0.110.3
[INFO] [stderr]    Compiling jvmrs v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `GROWTH_FACTOR` is never used
[INFO] [stdout]   --> src/allocator.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ArenaAllocator {
[INFO] [stdout]    | ------------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, and `current_exception` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_loaded_class_count`, `get_memory_usage`, and `get_gc_count` are never used
[INFO] [stdout]    --> src/repl.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 449 | trait ReplInterpreterExt {
[INFO] [stdout]     |       ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 453 |     fn get_loaded_class_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 454 |     fn get_memory_usage(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 455 |     fn get_gc_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClassFile`
[INFO] [stdout]    --> src/inline_cache.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |     use crate::class_file::{ClassFile, MethodInfo};
[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: `FieldInfo`
[INFO] [stdout]    --> src/aot_compiler.rs:618:74
[INFO] [stdout]     |
[INFO] [stdout] 618 |     use crate::class_file::{AttributeInfo, ClassFile, ConstantPoolEntry, FieldInfo, MethodInfo};
[INFO] [stdout]     |                                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MemoryStats`
[INFO] [stdout]   --> tests/memory_allocation_tests.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     MemoryStats
[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: `ClassFile`
[INFO] [stdout]  --> tests/inline_caching_tests.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use jvmrs::class_file::{ClassFile, MethodInfo};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/inline_caching_tests.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut interpreter = Interpreter::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: `interpreter`
[INFO] [stdout]   --> tests/inline_caching_tests.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut interpreter = Interpreter::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interpreter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/memory_allocation_tests.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |     for i in 0..62 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj1`
[INFO] [stdout]    --> tests/memory_allocation_tests.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |     let obj1 = allocator.allocate_object("SafetyTest1").unwrap();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_obj1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj2`
[INFO] [stdout]    --> tests/memory_allocation_tests.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |     let obj2 = allocator.allocate_object("SafetyTest2").unwrap();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_obj2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/inline_caching_tests.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     for i in 0..1000 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> tests/compressed_oops_tests.rs:164:21
[INFO] [stdout]     |
[INFO] [stdout] 164 |     let packed: Vec<((&str, u16))> = fields
[INFO] [stdout]     |                     ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 164 -     let packed: Vec<((&str, u16))> = fields
[INFO] [stdout] 164 +     let packed: Vec<(&str, u16)> = fields
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | /// Test that integer addition is commutative
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | /// Test that integer multiplication is associative
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | /// Test that bitwise AND is idempotent
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | /// Test that bitwise XOR with zero is identity
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | /// Test that shifts are within expected bounds
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | /// Test that array operations preserve length
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> tests/property_tests.rs:91:1
[INFO] [stdout]    |
[INFO] [stdout] 91 | /// Test that array write/read preserves values
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | /// Test that stack push/pop is reversible
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | / /// Test that field get/set preserves values
[INFO] [stdout] 141 | | // TODO: Implement field methods on Interpreter
[INFO] [stdout] 142 | | /*
[INFO] [stdout] 143 | | proptest! {
[INFO] [stdout] ...   |
[INFO] [stdout] 162 | | /// Test that comparison operations are consistent
[INFO] [stdout]     | |_-------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | /// Test that type conversions are lossless where appropriate
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:194:1
[INFO] [stdout]     |
[INFO] [stdout] 194 | /// Test that float comparisons handle NaN correctly
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | / /// Test that string concatenation is associative
[INFO] [stdout] 208 | | // TODO: Implement string methods on Interpreter
[INFO] [stdout] 209 | | /*
[INFO] [stdout] 210 | | proptest! {
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | | /// Test that null handling is consistent
[INFO] [stdout]     | |_----------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:318:1
[INFO] [stdout]     |
[INFO] [stdout] 318 | / /// Test that method dispatch is consistent
[INFO] [stdout] 319 | | // TODO: Implement invoke_method
[INFO] [stdout] 320 | | /*
[INFO] [stdout] 321 | | proptest! {
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | | /// Test that bitwise operations preserve properties
[INFO] [stdout]     | |_---------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:359:1
[INFO] [stdout]     |
[INFO] [stdout] 359 | / /// Test that array bounds checking works
[INFO] [stdout] 360 | | // TODO: Implement array methods
[INFO] [stdout] 361 | | /*
[INFO] [stdout] 362 | | proptest! {
[INFO] [stdout] ...   |
[INFO] [stdout] 384 | | /// Test that division by zero is handled correctly
[INFO] [stdout]     | |_--------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:398:1
[INFO] [stdout]     |
[INFO] [stdout] 398 | /// Test that modulo operation properties hold
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:416:1
[INFO] [stdout]     |
[INFO] [stdout] 416 | /// Test that negation properties hold
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/property_tests.rs:428:1
[INFO] [stdout]     |
[INFO] [stdout] 428 | /// Test that shift operations preserve bits
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> tests/property_tests.rs:179:25
[INFO] [stdout]     |
[INFO] [stdout] 179 |         prop_assert_eq!((eq + ne), 1); // Either equal or not equal
[INFO] [stdout]     |                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -         prop_assert_eq!((eq + ne), 1); // Either equal or not equal
[INFO] [stdout] 179 +         prop_assert_eq!(eq + ne, 1); // Either equal or not equal
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> tests/property_tests.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |         prop_assert_eq!((lt + gt + eq), 1); // Exactly one of less, greater, or equal
[INFO] [stdout]     |                         ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -         prop_assert_eq!((lt + gt + eq), 1); // Exactly one of less, greater, or equal
[INFO] [stdout] 180 +         prop_assert_eq!(lt + gt + eq, 1); // Exactly one of less, greater, or equal
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> tests/property_tests.rs:189:22
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let result = (l as i32);
[INFO] [stdout]     |                      ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 189 -         let result = (l as i32);
[INFO] [stdout] 189 +         let result = l as i32;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapArray`, `Memory`, and `TlabAllocator`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | use jvmrs::memory::{Memory, HeapArray, Value, TlabAllocator};
[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 variable: `int_type`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let int_type = MemoryType::PrimitiveArray(PrimitiveArrayType::Int);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte_type`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let byte_type = MemoryType::PrimitiveArray(PrimitiveArrayType::Byte);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_byte_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `char_type`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let char_type = MemoryType::PrimitiveArray(PrimitiveArrayType::Char);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_char_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj_array_type`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let obj_array_type = MemoryType::ObjectArray("java/lang/String".to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_obj_array_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `multi_array_type`
[INFO] [stdout]   --> tests/comprehensive_improvements.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let multi_array_type = MemoryType::MultiArray("I".to_string(), vec![2, 3, 4]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multi_array_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array_type`
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:115:10
[INFO] [stdout]     |
[INFO] [stdout] 115 |     for (array_type, expected_len) in &types_and_expected_lengths {
[INFO] [stdout]     |          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_array_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let result = interpreter.new_array_int(*expected_len);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_status`
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let initial_status = interpreter.is_jit_enabled();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |     let mut interpreter = Interpreter::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: `classes`
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let classes = interpreter.get_class_reflection("java/lang/Object");
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let result = interpreter.get_field_value(&obj, "x");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let mut interpreter = Interpreter::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |     assert!(loaded_count >= 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:231:13
[INFO] [stdout]     |
[INFO] [stdout] 231 |     assert!(initial_usage >= 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/comprehensive_improvements.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |     assert!(gc_count >= 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_len`
[INFO] [stdout]    --> tests/property_tests.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let original_len = values.len();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_len`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArenaAllocator`, `MemoryAllocator`, `MemoryStats`, `MemoryType`, `PrimitiveArrayType`, and `TlabAllocator`
[INFO] [stdout]   --> src/memory/mod.rs:68:28
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub use memory_allocator::{MemoryAllocator, ArenaAllocator, TlabAllocator, MemoryType, PrimitiveArrayType, MemoryStats};
[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 variable: `name`
[INFO] [stdout]    --> src/inline_cache.rs:247:27
[INFO] [stdout]     |
[INFO] [stdout] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `desc`
[INFO] [stdout]    --> src/inline_cache.rs:247:39
[INFO] [stdout]     |
[INFO] [stdout] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_desc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClassFile`
[INFO] [stdout]    --> src/inline_cache.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |     use crate::class_file::{ClassFile, MethodInfo};
[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 imports: `ArenaAllocator`, `MemoryAllocator`, `MemoryStats`, `MemoryType`, `PrimitiveArrayType`, and `TlabAllocator`
[INFO] [stdout]   --> src/memory/mod.rs:68:28
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub use memory_allocator::{MemoryAllocator, ArenaAllocator, TlabAllocator, MemoryType, PrimitiveArrayType, MemoryStats};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldInfo`
[INFO] [stdout]    --> src/aot_compiler.rs:618:74
[INFO] [stdout]     |
[INFO] [stdout] 618 |     use crate::class_file::{AttributeInfo, ClassFile, ConstantPoolEntry, FieldInfo, MethodInfo};
[INFO] [stdout]     |                                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DebugConfig` and `JvmDebugger`
[INFO] [stdout]  --> src/tests.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use crate::debug::{DebugConfig, JvmDebugger};
[INFO] [stdout]   |                        ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `to_class_loading_error`, `to_parse_error`, and `to_runtime_error`
[INFO] [stdout]   --> src/tests.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 |         ClassLoadingError, JvmError, to_class_loading_error, to_parse_error, to_runtime_error,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapArray`, `Monitor`, and `StackFrame`
[INFO] [stdout]   --> src/tests.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use crate::memory::{Heap, HeapArray, Monitor, StackFrame, Value};
[INFO] [stdout]    |                               ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:270:56
[INFO] [stdout]     |
[INFO] [stdout] 270 |         fn test_executor<T: BytecodeExecutor + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:271:59
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn test_memory_manager<T: MemoryManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                           ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:272:57
[INFO] [stdout]     |
[INFO] [stdout] 272 |         fn test_class_manager<T: ClassManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let (mut frame, res) =
[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: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/inline_cache.rs:247:27
[INFO] [stdout]     |
[INFO] [stdout] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `desc`
[INFO] [stdout]    --> src/inline_cache.rs:247:39
[INFO] [stdout]     |
[INFO] [stdout] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_desc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:152:10
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:894:10
[INFO] [stdout]     |
[INFO] [stdout] 894 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:904:10
[INFO] [stdout]     |
[INFO] [stdout] 904 |     let (mut frame, res) =
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:910:10
[INFO] [stdout]     |
[INFO] [stdout] 910 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:924:10
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let (mut frame, res) = run_instruction(0xa7, &[0x00, 0x0a], vec![], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:973:10
[INFO] [stdout]     |
[INFO] [stdout] 973 |     let (mut frame, res) = run_instruction(0xc6, &[0x00, 0x05], vec![Value::Null], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:977:10
[INFO] [stdout]     |
[INFO] [stdout] 977 |     let (mut frame, res) = run_instruction(0xc6, &[0x00, 0x05], vec![Value::Reference(1)], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:983:10
[INFO] [stdout]     |
[INFO] [stdout] 983 |     let (mut frame, res) = run_instruction(0xc7, &[0x00, 0x05], vec![Value::Reference(1)], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:987:10
[INFO] [stdout]     |
[INFO] [stdout] 987 |     let (mut frame, res) = run_instruction(0xc7, &[0x00, 0x05], vec![Value::Null], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `GROWTH_FACTOR` is never used
[INFO] [stdout]   --> src/allocator.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ArenaAllocator {
[INFO] [stdout]    | ------------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, and `current_exception` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_class_manager` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |         fn test_class_manager<T: ClassManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_loaded_class_count`, `get_memory_usage`, and `get_gc_count` are never used
[INFO] [stdout]    --> src/repl.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 449 | trait ReplInterpreterExt {
[INFO] [stdout]     |       ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 453 |     fn get_loaded_class_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 454 |     fn get_memory_usage(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 455 |     fn get_gc_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/interpreter/traits.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         class: &ClassFile,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/interpreter/traits.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         bytecode: &[u8],
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/interpreter/traits.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         frame: &mut StackFrame,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]    --> src/interpreter/traits.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         opcode: u8,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         class_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method_name`
[INFO] [stdout]    --> src/interpreter/traits.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         method_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `descriptor`
[INFO] [stdout]    --> src/interpreter/traits.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         descriptor: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:270:56
[INFO] [stdout]     |
[INFO] [stdout] 270 |         fn test_executor<T: BytecodeExecutor + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:271:59
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn test_memory_manager<T: MemoryManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                           ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/interpreter/traits.rs:272:57
[INFO] [stdout]     |
[INFO] [stdout] 272 |         fn test_class_manager<T: ClassManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |                                                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]    --> src/main.rs:492:17
[INFO] [stdout]     |
[INFO] [stdout] 492 |     if let Some(ref output_path) = wasm_output {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArenaSlot` is never used
[INFO] [stdout]   --> src/allocator.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum ArenaSlot {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArenaAllocator` is never constructed
[INFO] [stdout]   --> src/allocator.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ArenaAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:37:11
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ArenaAllocator {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  36 |     /// Initial capacity (number of object slots)
[INFO] [stdout]  37 |     const INITIAL_CAPACITY: usize = 256;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout]  41 |
[INFO] [stdout]  42 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn addr_to_index(&self, addr: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn iter_objects(&self) -> impl Iterator<Item = (u32, &HeapObject)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrayArena` is never constructed
[INFO] [stdout]    --> src/allocator.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ArrayArena {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:164:11
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl ArrayArena {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 164 |     const INITIAL_CAPACITY: usize = 128;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |
[INFO] [stdout] 166 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn allocate(&mut self, array: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn iter_arrays(&self) -> impl Iterator<Item = (u32, &HeapArray)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]    --> src/class_cache.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn default_cache_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic`, `minor_version`, `major_version`, `access_flags`, and `fields` are never read
[INFO] [stdout]   --> src/class_file.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ClassFile {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 13 |     pub magic: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 14 |     pub minor_version: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub major_version: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub constant_pool: Vec<ConstantPoolEntry>,
[INFO] [stdout] 17 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fields: Vec<FieldInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reference_kind` is never read
[INFO] [stdout]   --> src/class_file.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     ConstantMethodHandle {
[INFO] [stdout]    |     -------------------- field in this variant
[INFO] [stdout] 67 |         reference_kind: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor_index` is never read
[INFO] [stdout]   --> src/class_file.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ConstantMethodType {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 71 |         descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access_flags`, `name_index`, `descriptor_index`, and `attributes` are never read
[INFO] [stdout]   --> src/class_file.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 82 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 83 |     pub name_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 84 |     pub descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     pub attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAttributeLength` is never constructed
[INFO] [stdout]    --> src/class_file.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub enum ParseError {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 110 |     InvalidAttributeLength,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/class_loader.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl ClassLoader {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  31 |     /// Create a new class loader with the given classpath
[INFO] [stdout]  32 |     pub fn new(classpath: Vec<PathBuf>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn metrics(&self) -> &ClassLoadMetrics {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn with_cache_dir(mut self, cache_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn get_loaded_classes(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn add_classpath(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn get_classpath(&self) -> &[PathBuf] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn reload_class(&mut self, class_name: &str) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_classpath` is never used
[INFO] [stdout]    --> src/class_loader.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub fn parse_classpath(classpath_str: &str) -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_system_classpath` is never used
[INFO] [stdout]    --> src/class_loader.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn get_system_classpath() -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 80 |     /// Invalid magic number (not 0xCAFEBABE)
[INFO] [stdout] 81 |     InvalidMagic(u32),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 82 |     /// Unsupported class file version
[INFO] [stdout] 83 |     UnsupportedVersion(u16, u16),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     /// Invalid constant pool tag
[INFO] [stdout] 85 |     InvalidConstantPoolTag(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 86 |     /// Invalid attribute length
[INFO] [stdout] 87 |     InvalidAttributeLength,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     /// Invalid UTF-8 string in constant pool
[INFO] [stdout] 89 |     InvalidUtf8String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     /// Invalid method descriptor
[INFO] [stdout] 91 |     InvalidMethodDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     /// Invalid field descriptor
[INFO] [stdout] 93 |     InvalidFieldDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     /// Invalid opcode
[INFO] [stdout] 95 |     InvalidOpcode(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 96 |     /// Invalid bytecode
[INFO] [stdout] 97 |     InvalidBytecode(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub enum RuntimeError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 143 |     StackOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     ClassNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     InvalidTypeConversion(String, String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     ArithmeticOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     InvalidArrayType(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     /// Invalid array length
[INFO] [stdout] 169 |     InvalidArrayLength(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     IllegalState(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     InvalidOpcode(u8),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 182 |     /// Exception thrown
[INFO] [stdout] 183 |     ExceptionThrown(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     ArrayStoreException,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     IllegalAccessException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 |     /// Instantiation exception
[INFO] [stdout] 193 |     InstantiationException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     /// String index out of bounds
[INFO] [stdout] 195 |     StringIndexOutOfBounds(usize, usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuntimeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub enum MemoryError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 262 |     /// Out of memory
[INFO] [stdout] 263 |     OutOfMemory,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     HeapCorruption,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     /// Garbage collection failed
[INFO] [stdout] 275 |     GcError(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 276 |     /// Memory limit exceeded
[INFO] [stdout] 277 |     MemoryLimitExceeded(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 278 |     /// Invalid object header
[INFO] [stdout] 279 |     InvalidObjectHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 280 |     /// Invalid array header
[INFO] [stdout] 281 |     InvalidArrayHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 282 |     /// Memory allocation failed
[INFO] [stdout] 283 |     AllocationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     ArrayIndexOutOfBounds(usize, usize), // index, length
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     CompressedOopsOverflow(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub enum ClassLoadingError {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] 345 |     /// Class file not found
[INFO] [stdout] 346 |     ClassFileNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     ClassCircularityError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     UnsupportedClassVersion(String, u16, u16),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 355 |     /// Class verification failed
[INFO] [stdout] 356 |     VerificationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 357 |     /// Linkage error
[INFO] [stdout] 358 |     LinkageError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 359 |     /// Illegal access error
[INFO] [stdout] 360 |     IllegalAccessError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     /// Instantiation error
[INFO] [stdout] 362 |     InstantiationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 363 |     /// Class loader constraint violation
[INFO] [stdout] 364 |     ClassLoaderConstraintViolation(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassLoadingError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NativeLibraryNotFound`, `NativeLibraryLoadFailed`, and `UnsatisfiedLinkError` are never constructed
[INFO] [stdout]    --> src/error.rs:408:5
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub enum NativeError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 408 |     NativeLibraryNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 409 |     /// Native library load failed
[INFO] [stdout] 410 |     NativeLibraryLoadFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 411 |     /// Unsatisfied link error
[INFO] [stdout] 412 |     UnsatisfiedLinkError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NativeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JvmResult` is never used
[INFO] [stdout]    --> src/error.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub type JvmResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InterpreterResult` is never used
[INFO] [stdout]    --> src/error.rs:444:10
[INFO] [stdout]     |
[INFO] [stdout] 444 | pub type InterpreterResult = Result<(), JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ClassFileResult` is never used
[INFO] [stdout]    --> src/error.rs:447:10
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub type ClassFileResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MemoryResult` is never used
[INFO] [stdout]    --> src/error.rs:450:10
[INFO] [stdout]     |
[INFO] [stdout] 450 | pub type MemoryResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_runtime_error` is never used
[INFO] [stdout]    --> src/error.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn to_runtime_error<T: ToString>(msg: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_parse_error` is never used
[INFO] [stdout]    --> src/error.rs:458:8
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub fn to_parse_error<T: Into<ParseError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_memory_error` is never used
[INFO] [stdout]    --> src/error.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub fn to_memory_error<T: Into<MemoryError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToJvmError` is never used
[INFO] [stdout]    --> src/error.rs:478:11
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub trait ToJvmError<T> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Generation` is never used
[INFO] [stdout]   --> src/gc.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Generation {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenObject` is never constructed
[INFO] [stdout]   --> src/gc.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct GenObject {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerationalHeap` is never constructed
[INFO] [stdout]   --> src/gc.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct GenerationalHeap {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gc.rs:57:15
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl GenerationalHeap {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  57 |     pub const DEFAULT_PROMOTION_THRESHOLD: u8 = 8;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  58 |
[INFO] [stdout]  59 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn alloc_addr(&mut self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn allocate_string(&mut self, data: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn allocate_array(&mut self, array_type: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn get_gen_object(&self, addr: u32) -> Option<&GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn get_gen_object_mut(&mut self, addr: u32) -> Option<&mut GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn mark_from_roots(&mut self, addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn collect_references(&self, addr: u32) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn minor_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn major_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn gc_stats(&self) -> GcStats {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn mark_object(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn array_length(&self, addr: u32) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn array_get(&self, addr: u32, index: usize) -> Result<Value, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn array_set(&mut self, addr: u32, index: usize, value: Value) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn monitor_enter(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 548 |     pub fn monitor_exit(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopedRoot` is never constructed
[INFO] [stdout]    --> src/gc.rs:585:12
[INFO] [stdout]     |
[INFO] [stdout] 585 | pub struct ScopedRoot {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `addr` are never used
[INFO] [stdout]    --> src/gc.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 590 | impl ScopedRoot {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 591 |     pub fn new(addr: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn addr(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_roots` is never used
[INFO] [stdout]    --> src/gc.rs:618:8
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub fn get_roots() -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GcStats` is never constructed
[INFO] [stdout]    --> src/gc.rs:624:12
[INFO] [stdout]     |
[INFO] [stdout] 624 | pub struct GcStats {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_root` is never used
[INFO] [stdout]    --> src/gc.rs:634:8
[INFO] [stdout]     |
[INFO] [stdout] 634 | pub fn add_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_root` is never used
[INFO] [stdout]    --> src/gc.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn remove_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `method` is never read
[INFO] [stdout]   --> src/inline_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct InlineCacheEntry {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub method: Arc<MethodInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InlineCacheEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `clear` are never used
[INFO] [stdout]    --> src/inline_cache.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl CallSiteCache {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn stats(&self) -> CacheStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheStats` is never constructed
[INFO] [stdout]    --> src/inline_cache.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct CacheStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_stats` and `clear_all` are never used
[INFO] [stdout]    --> src/inline_cache.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl InlineCacheManager {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_stats(&self) -> Vec<((String, String, String, usize), CacheStats)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_all(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_debugger` is never used
[INFO] [stdout]   --> src/memory/mod.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Memory {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn set_debugger(&mut self, debugger: JvmDebugger) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Heap {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     marked: HashSet<u32>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Heap` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/heap.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Heap {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn collect_garbage(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap_object.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct HeapObject {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub marked: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HeapObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MemoryType` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum MemoryType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrimitiveArrayType` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PrimitiveArrayType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryStats` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct MemoryStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MemoryAllocator` is never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub trait MemoryAllocator {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArenaAllocator` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ArenaAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryArena` is never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct MemoryArena {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add_arena` are never used
[INFO] [stdout]   --> src/memory/memory_allocator.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl ArenaAllocator {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new arena allocator
[INFO] [stdout] 73 |     pub fn new(arena_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn add_arena(&mut self, size: usize) -> Result<(), MemoryError> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TlabAllocator` is never constructed
[INFO] [stdout]    --> src/memory/memory_allocator.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub struct TlabAllocator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_or_create_tlab` are never used
[INFO] [stdout]    --> src/memory/memory_allocator.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl TlabAllocator {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 239 |     pub fn new(tlab_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn get_or_create_tlab(&mut self) -> &mut Tlab {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tlab` is never constructed
[INFO] [stdout]    --> src/memory/memory_allocator.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | struct Tlab {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/monitor.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl Monitor {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn is_owned_by(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn is_biased_toward(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn revoke_bias(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn lock_stats(&self) -> MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn wait(&mut self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn notify(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn notify_all(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonitorStats` is never constructed
[INFO] [stdout]    --> src/memory/monitor.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_frame`, `pop_frame`, `current_frame`, `current_frame_mut`, and `depth` are never used
[INFO] [stdout]   --> src/memory/stack.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl JVMStack {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn push_frame(&mut self, frame: StackFrame) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn pop_frame(&mut self) -> Option<StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn current_frame(&self) -> Option<&StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn current_frame_mut(&mut self) -> Option<&mut StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn depth(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Boolean`, `Byte`, `Char`, and `Short` are never constructed
[INFO] [stdout]  --> src/memory/value.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Value {
[INFO] [stdout]   |          ----- variants in this enum
[INFO] [stdout] 6 |     Boolean(bool),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     Byte(i8),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     Char(u16),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     Short(i16),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_reference` is never used
[INFO] [stdout]   --> src/memory/value.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_reference(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Annotation` is never constructed
[INFO] [stdout]   --> src/annotations.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Annotation {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ElementValue` is never used
[INFO] [stdout]   --> src/annotations.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ElementValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_attribute` is never used
[INFO] [stdout]   --> src/annotations.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn find_attribute<'a>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_annotations` is never used
[INFO] [stdout]   --> src/annotations.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn parse_annotations(class: &ClassFile, attr: &AttributeInfo) -> Vec<Annotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_element_value` is never used
[INFO] [stdout]   --> src/annotations.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn parse_element_value(class: &ClassFile, data: &[u8], pos: &mut usize) -> ElementValue {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_annotations` is never used
[INFO] [stdout]    --> src/annotations.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn get_annotations(class: &ClassFile, attrs: &[AttributeInfo]) -> Vec<Annotation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_signature` is never used
[INFO] [stdout]    --> src/annotations.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn get_signature(class: &ClassFile, attrs: &[AttributeInfo]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_class_annotations` and `get_class_signature` are never used
[INFO] [stdout]    --> src/annotations.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl ClassFile {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 144 |     /// Get class-level annotations
[INFO] [stdout] 145 |     pub fn get_class_annotations(&self) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_class_signature(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_annotations` and `get_signature_attr` are never used
[INFO] [stdout]    --> src/annotations.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl MethodInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 156 |     /// Get method-level annotations
[INFO] [stdout] 157 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn get_signature_attr(&self, class: &ClassFile) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_annotations` is never used
[INFO] [stdout]    --> src/annotations.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl FieldInfo {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 168 |     /// Get field-level annotations
[INFO] [stdout] 169 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, `current_exception`, and `reflection_api` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) reflection_api: ReflectionApi,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/interpreter/mod.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl Interpreter {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn with_classpath(classpath: Vec<PathBuf>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub fn memory_mut(&mut self) -> &mut Memory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn new_instance(&mut self, class_name: &str, args: &[Value]) -> Result<Value, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn get_field_value(&self, obj: &Value, field_name: &str) -> Result<Value, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub fn set_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn get_object_class(&self, obj: &Value) -> Result<String, JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 596 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn build_descriptor_for_args(args: &[Value]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     fn invoke_constructor_for_reflection(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 683 |     pub fn get_loaded_class_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 688 |     pub fn get_memory_usage(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 693 |     pub fn get_gc_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     pub fn is_jit_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn jit_manager(&mut self) -> Option<&mut JitManager> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 719 |     pub fn is_class_loaded(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn load_class<P: AsRef<Path>>(&mut self, path: P) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 741 |     pub fn get_class(&self, name: &str) -> Option<&ClassFile> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 746 |     pub fn get_reflection_api(&self) -> &ReflectionApi {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     pub fn get_class_reflection(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 824 |     pub fn array_set_value(&mut self, array_ref: u32, index: i32, value: Value) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn array_set_int(&mut self, array_ref: u32, index: i32, value: i32) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 836 |     pub fn array_get_value(&mut self, array_ref: u32, index: i32) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |     pub fn array_get_int(&mut self, array_ref: u32, index: i32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     pub fn array_get_length(&mut self, array_ref: u32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 854 |     pub fn new_array_object(&mut self, component_type: &str, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 863 |     pub fn new_array_bool(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 872 |     pub fn new_array_byte(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 881 |     pub fn new_array_char(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 890 |     pub fn new_array_short(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 899 |     pub fn new_array_long(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 908 |     pub fn new_array_float(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 917 |     pub fn new_array_double(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 926 |     pub fn new_array_int(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BytecodeExecutor` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait BytecodeExecutor {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MemoryManager` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait MemoryManager {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ClassManager` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait ClassManager {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JitManagerProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait JitManagerProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DebugProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub trait DebugProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NativeMethodHandler` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub trait NativeMethodHandler {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RuntimeConfig` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:136:11
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub trait RuntimeConfig {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JvmInterpreter` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub trait JvmInterpreter: 
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultInterpreterDelegate` is never constructed
[INFO] [stdout]    --> src/interpreter/traits.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct DefaultInterpreterDelegate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_1` is never used
[INFO] [stdout]  --> src/native.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const JNI_VERSION_1_1: i32 = 0x00010001;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_2` is never used
[INFO] [stdout]  --> src/native.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const JNI_VERSION_1_2: i32 = 0x00010002;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_4` is never used
[INFO] [stdout]  --> src/native.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const JNI_VERSION_1_4: i32 = 0x00010004;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_6` is never used
[INFO] [stdout]   --> src/native.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const JNI_VERSION_1_6: i32 = 0x00010006;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_8` is never used
[INFO] [stdout]   --> src/native.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const JNI_VERSION_1_8: i32 = 0x00010008;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JNINativeInterface_` is never constructed
[INFO] [stdout]   --> src/native.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct JNINativeInterface_ {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JNINativeMethod` is never used
[INFO] [stdout]   --> src/native.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type JNINativeMethod = unsafe extern "C" fn(*mut c_void, *mut c_void, *mut *mut jvalue);
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `jvalue` is never used
[INFO] [stdout]   --> src/native.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub union jvalue {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/native.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait NativeMethod: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/native.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct SimpleNativeMethod {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 60 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_native` is never used
[INFO] [stdout]    --> src/native.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NativeRegistry {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn is_native(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_to_jvalue` is never used
[INFO] [stdout]    --> src/native.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn value_to_jvalue(value: Value) -> jvalue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jvalue_to_value` is never used
[INFO] [stdout]    --> src/native.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn jvalue_to_value(jvalue: jvalue) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct FieldReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MethodReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct MethodReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstructorReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ConstructorReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ClassReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `descriptor_to_type` is never used
[INFO] [stdout]   --> src/reflection.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn descriptor_to_type(descriptor: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `class_to_reflection` is never used
[INFO] [stdout]    --> src/reflection.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn class_to_reflection(class: &ClassFile) -> ClassReflection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_method_params` is never used
[INFO] [stdout]    --> src/reflection.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn parse_method_params(descriptor: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_return_type` is never used
[INFO] [stdout]    --> src/reflection.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn parse_return_type(descriptor: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/reflection.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl ReflectionApi {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn get_class(&self, class_name: &str) -> Option<ClassReflection> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn get_fields(&self, class_name: &str) -> Vec<FieldReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn get_methods(&self, class_name: &str) -> Vec<MethodReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn get_constructors(&self, class_name: &str) -> Vec<ConstructorReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn get_super_class(&self, class_name: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn get_interfaces(&self, class_name: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn get_class_modifiers(&self, class_name: &str) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn is_interface(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn is_abstract(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn is_public(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn is_field_public(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn is_field_static(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn is_method_public(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn is_method_static(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub fn new_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn set_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn get_object_class(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUBLIC` is never used
[INFO] [stdout]    --> src/reflection.rs:503:15
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub const PUBLIC: u16 = 0x0001;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIVATE` is never used
[INFO] [stdout]    --> src/reflection.rs:504:15
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub const PRIVATE: u16 = 0x0002;
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTECTED` is never used
[INFO] [stdout]    --> src/reflection.rs:505:15
[INFO] [stdout]     |
[INFO] [stdout] 505 |     pub const PROTECTED: u16 = 0x0004;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATIC` is never used
[INFO] [stdout]    --> src/reflection.rs:506:15
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub const STATIC: u16 = 0x0008;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FINAL` is never used
[INFO] [stdout]    --> src/reflection.rs:507:15
[INFO] [stdout]     |
[INFO] [stdout] 507 |     pub const FINAL: u16 = 0x0010;
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYNCHRONIZED` is never used
[INFO] [stdout]    --> src/reflection.rs:508:15
[INFO] [stdout]     |
[INFO] [stdout] 508 |     pub const SYNCHRONIZED: u16 = 0x0020;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOLATILE` is never used
[INFO] [stdout]    --> src/reflection.rs:509:15
[INFO] [stdout]     |
[INFO] [stdout] 509 |     pub const VOLATILE: u16 = 0x0040;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSIENT` is never used
[INFO] [stdout]    --> src/reflection.rs:510:15
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub const TRANSIENT: u16 = 0x0080;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NATIVE` is never used
[INFO] [stdout]    --> src/reflection.rs:511:15
[INFO] [stdout]     |
[INFO] [stdout] 511 |     pub const NATIVE: u16 = 0x0100;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE` is never used
[INFO] [stdout]    --> src/reflection.rs:512:15
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub const INTERFACE: u16 = 0x0200;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ABSTRACT` is never used
[INFO] [stdout]    --> src/reflection.rs:513:15
[INFO] [stdout]     |
[INFO] [stdout] 513 |     pub const ABSTRACT: u16 = 0x0400;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRICTFP` is never used
[INFO] [stdout]    --> src/reflection.rs:514:15
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub const STRICTFP: u16 = 0x0800;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC` is never used
[INFO] [stdout]  --> src/serialization.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAGIC: &[u8; 4] = b"JVRS";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERSION` is never used
[INFO] [stdout]   --> src/serialization.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_NULL` is never used
[INFO] [stdout]   --> src/serialization.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const TAG_NULL: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_INT` is never used
[INFO] [stdout]   --> src/serialization.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const TAG_INT: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_LONG` is never used
[INFO] [stdout]   --> src/serialization.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const TAG_LONG: u8 = 2;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FLOAT` is never used
[INFO] [stdout]   --> src/serialization.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TAG_FLOAT: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_DOUBLE` is never used
[INFO] [stdout]   --> src/serialization.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const TAG_DOUBLE: u8 = 4;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_REFERENCE` is never used
[INFO] [stdout]   --> src/serialization.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const TAG_REFERENCE: u8 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_ARRAY_REF` is never used
[INFO] [stdout]   --> src/serialization.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const TAG_ARRAY_REF: u8 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BOOLEAN` is never used
[INFO] [stdout]   --> src/serialization.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const TAG_BOOLEAN: u8 = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BYTE` is never used
[INFO] [stdout]   --> src/serialization.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const TAG_BYTE: u8 = 8;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_CHAR` is never used
[INFO] [stdout]   --> src/serialization.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TAG_CHAR: u8 = 9;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_SHORT` is never used
[INFO] [stdout]   --> src/serialization.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const TAG_SHORT: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_serializable` is never used
[INFO] [stdout]   --> src/serialization.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn is_serializable(_class_name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_serializable_class` is never used
[INFO] [stdout]   --> src/serialization.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn is_serializable_class(class: &ClassFile) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_len_prefixed_string` is never used
[INFO] [stdout]   --> src/serialization.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn write_len_prefixed_string<W: Write>(w: &mut W, s: &str) -> std::io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_len_prefixed_string` is never used
[INFO] [stdout]   --> src/serialization.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn read_len_prefixed_string<R: Read>(r: &mut R) -> std::io::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_value` is never used
[INFO] [stdout]   --> src/serialization.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn write_value<W: Write>(w: &mut W, v: &Value) -> std::io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_value` is never used
[INFO] [stdout]    --> src/serialization.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn read_value<R: Read>(r: &mut R) -> std::io::Result<Value> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_object` is never used
[INFO] [stdout]    --> src/serialization.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn serialize_object(obj: &HeapObject) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_object` is never used
[INFO] [stdout]    --> src/serialization.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn deserialize_object(data: &[u8], _class_name: &str) -> Result<HeapObject, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize_value` is never used
[INFO] [stdout]    --> src/serialization.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn serialize_value(v: &Value) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_value` is never used
[INFO] [stdout]    --> src/serialization.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn deserialize_value(data: &[u8]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_html_fragment` is never used
[INFO] [stdout]   --> src/visualization.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn export_html_fragment(frames: &[StackFrame]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `html_escape` is never used
[INFO] [stdout]   --> src/visualization.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn html_escape(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instruction_count`, `total_time_ns`, and `last_compiled` are never read
[INFO] [stdout]   --> src/jit.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MethodProfile {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub instruction_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 68 |     /// Time spent in this method (nanoseconds)
[INFO] [stdout] 69 |     pub total_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub last_compiled: Option<Instant>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_instructions` and `record_time` are never used
[INFO] [stdout]   --> src/jit.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl MethodProfile {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn record_instructions(&mut self, count: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn record_time(&mut self, time_ns: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_method_size` is never read
[INFO] [stdout]    --> src/jit.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct TieredCompilationConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub max_method_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TieredCompilationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IrGenerationError` is never constructed
[INFO] [stdout]    --> src/jit.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub enum JitError {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 149 |     IrGenerationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JitError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `level` are never read
[INFO] [stdout]    --> src/jit.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct CompiledCode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 174 |     /// Function name
[INFO] [stdout] 175 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub level: CompilationLevel,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompiledCode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `config` and `set_config` are never used
[INFO] [stdout]    --> src/jit.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl CraneliftJitCompiler {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn config(&self) -> &TieredCompilationConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn set_config(&mut self, config: TieredCompilationConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `link_executable` is never used
[INFO] [stdout]    --> src/jit.rs:392:12
[INFO] [stdout]     |
[INFO] [stdout] 380 | impl AotCompiler {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn link_executable(objects: &[PathBuf], output_path: &Path) -> JitResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_or_compile_method` and `is_compiled` are never used
[INFO] [stdout]    --> src/jit.rs:616:12
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl JitManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn get_or_compile_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn is_compiled(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmIrGenerator` is never constructed
[INFO] [stdout]    --> src/jit.rs:573:16
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub struct LlvmIrGenerator {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/jit.rs:576:16
[INFO] [stdout]     |
[INFO] [stdout] 575 |     impl LlvmIrGenerator {
[INFO] [stdout]     |     -------------------- associated function in this implementation
[INFO] [stdout] 576 |         pub fn new(_module_name: &str) -> Result<Self, String> {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trace_classes`, `trace_methods`, and `max_stack_frames` are never read
[INFO] [stdout]   --> src/debug.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DebugConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub trace_classes: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// Enable method entry/exit logging
[INFO] [stdout] 15 |     pub trace_methods: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Maximum number of stack frames to log (None for all)
[INFO] [stdout] 17 |     pub max_stack_frames: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DebugConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/debug.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl JvmDebugger {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn log_method_entry(&self, class_name: &str, method_name: &str, method_descriptor: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn log_method_exit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn log_class_loaded(&self, class_name: &str, source: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn log_memory_access(&self, address: u32, operation: &str, value: Option<&Value>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn log_exception(&self, exception: &str, handler_pc: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn log_gc(&self, freed_objects: usize, freed_bytes: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     pub fn instruction_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn reset_instruction_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rng_seed`, `fixed_timestamp_ns`, and `max_pause_ns` are never read
[INFO] [stdout]   --> src/deterministic.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DeterministicConfig {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout]  9 |     /// Fixed seed for any RNG (0 = use system time when disabled)
[INFO] [stdout] 10 |     pub rng_seed: u64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     /// Use fixed "epoch" timestamp instead of actual time
[INFO] [stdout] 12 |     pub fixed_timestamp_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     /// Target max pause time in ns (for real-time / HFT; advisory)
[INFO] [stdout] 14 |     pub max_pause_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeterministicConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `blockchain`, `realtime`, and `hft` are never used
[INFO] [stdout]   --> src/deterministic.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl DeterministicConfig {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 28 |     /// Preset for blockchain / smart contract execution
[INFO] [stdout] 29 |     pub fn blockchain() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn realtime(max_pause_ns: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn hft() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeterministicMode` is never constructed
[INFO] [stdout]   --> src/deterministic.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct DeterministicMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enabled`, `set_enabled`, `rng_seed`, and `timestamp_ns` are never used
[INFO] [stdout]   --> src/deterministic.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl DeterministicMode {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 59 |     pub fn new(config: DeterministicConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn rng_seed(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn timestamp_ns(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_max_samples`, `set_enabled`, `method_counts`, `method_time_ns`, and `hotspots` are never used
[INFO] [stdout]    --> src/profiler.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl Profiler {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn with_max_samples(max_samples: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn method_counts(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn method_time_ns(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn hotspots(&self, top_n: usize) -> Vec<(String, u64, u64)> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `is_enabled`, and `clear` are never used
[INFO] [stdout]    --> src/trace.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TraceRecorder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn with_capacity(max_steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Proxy` is never constructed
[INFO] [stdout]  --> src/aop.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Proxy {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdviceKind` is never used
[INFO] [stdout]   --> src/aop.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum AdviceKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pointcut` is never constructed
[INFO] [stdout]   --> src/aop.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Pointcut {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AopRegistry` is never constructed
[INFO] [stdout]   --> src/aop.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AopRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_advice`, and `matches` are never used
[INFO] [stdout]   --> src/aop.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl AopRegistry {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn add_advice(&mut self, pointcut: Pointcut, kind: AdviceKind) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn matches(&self, class_name: &str, method_name: &str) -> Option<AdviceKind> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_proxy` is never used
[INFO] [stdout]   --> src/aop.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn create_proxy(target_class: String, target_ref: u32, interceptor: Option<String>) -> Proxy {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `K8sOperatorConfig` is never constructed
[INFO] [stdout]  --> src/cloud.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct K8sOperatorConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DistributedObjectRef` is never constructed
[INFO] [stdout]   --> src/cloud.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DistributedObjectRef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JavaExtension` is never used
[INFO] [stdout]   --> src/extensions.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait JavaExtension: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NativeCallback` is never used
[INFO] [stdout]   --> src/extensions.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | type NativeCallback = Arc<dyn Fn(&[Value]) -> Result<Value, String> + Send + Sync>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExtensionRegistry` is never constructed
[INFO] [stdout]   --> src/extensions.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ExtensionRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_native`, `has_native`, `invoke_native`, `load`, and `loaded_extensions` are never used
[INFO] [stdout]    --> src/extensions.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn register_native(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn has_native(&self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn invoke_native(&self, key: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn load(&self, ext: &dyn JavaExtension) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn loaded_extensions(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_REGISTRY` is never used
[INFO] [stdout]    --> src/extensions.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | static GLOBAL_REGISTRY: OnceLock<RwLock<ExtensionRegistry>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `global` is never used
[INFO] [stdout]    --> src/extensions.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 151 |     /// Global extension registry (used by Interpreter when interop is enabled)
[INFO] [stdout] 152 |     pub fn global() -> &'static RwLock<ExtensionRegistry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotReloadManager` is never constructed
[INFO] [stdout]   --> src/hot_reload.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HotReloadManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_enabled`, `register_reloadable`, `class_file_changed`, `record_class_loaded`, and `replace_method` are never used
[INFO] [stdout]   --> src/hot_reload.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HotReloadManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn register_reloadable(&mut self, class: &str, _method: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn class_file_changed(&self, path: &Path) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn record_class_loaded(&mut self, class_name: &str, path: &Path) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn replace_method(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stack_overflow_check` is never read
[INFO] [stdout]   --> src/security.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SecurityConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub stack_overflow_check: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_stack_overflow`, `violation_count`, and `config` are never used
[INFO] [stdout]    --> src/security.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Sanitizer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn check_stack_overflow(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn violation_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn config(&self) -> &SecurityConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let (mut frame, res) =
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:152:10
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:894:10
[INFO] [stdout]     |
[INFO] [stdout] 894 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:904:10
[INFO] [stdout]     |
[INFO] [stdout] 904 |     let (mut frame, res) =
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:910:10
[INFO] [stdout]     |
[INFO] [stdout] 910 |     let (mut frame, res) = run_instruction(
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:924:10
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let (mut frame, res) = run_instruction(0xa7, &[0x00, 0x0a], vec![], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:973:10
[INFO] [stdout]     |
[INFO] [stdout] 973 |     let (mut frame, res) = run_instruction(0xc6, &[0x00, 0x05], vec![Value::Null], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:977:10
[INFO] [stdout]     |
[INFO] [stdout] 977 |     let (mut frame, res) = run_instruction(0xc6, &[0x00, 0x05], vec![Value::Reference(1)], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:983:10
[INFO] [stdout]     |
[INFO] [stdout] 983 |     let (mut frame, res) = run_instruction(0xc7, &[0x00, 0x05], vec![Value::Reference(1)], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter/tests.rs:987:10
[INFO] [stdout]     |
[INFO] [stdout] 987 |     let (mut frame, res) = run_instruction(0xc7, &[0x00, 0x05], vec![Value::Null], vec![]);
[INFO] [stdout]     |          ----^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/cranelift_jit.rs:274:37
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   let idx = result[i - 2];
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pop_int_ref`
[INFO] [stdout]    --> src/cranelift_jit.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]    --> src/main.rs:492:17
[INFO] [stdout]     |
[INFO] [stdout] 492 |     if let Some(ref output_path) = wasm_output {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArenaSlot` is never used
[INFO] [stdout]   --> src/allocator.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum ArenaSlot {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArenaAllocator` is never constructed
[INFO] [stdout]   --> src/allocator.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ArenaAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:37:11
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ArenaAllocator {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  36 |     /// Initial capacity (number of object slots)
[INFO] [stdout]  37 |     const INITIAL_CAPACITY: usize = 256;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout]  41 |
[INFO] [stdout]  42 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn addr_to_index(&self, addr: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn iter_objects(&self) -> impl Iterator<Item = (u32, &HeapObject)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrayArena` is never constructed
[INFO] [stdout]    --> src/allocator.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ArrayArena {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/allocator.rs:164:11
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl ArrayArena {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 164 |     const INITIAL_CAPACITY: usize = 128;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |
[INFO] [stdout] 166 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn allocate(&mut self, array: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn iter_arrays(&self) -> impl Iterator<Item = (u32, &HeapArray)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]    --> src/class_cache.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn default_cache_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `minor_version`, `access_flags`, and `fields` are never read
[INFO] [stdout]   --> src/class_file.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ClassFile {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 13 |     pub magic: u32,
[INFO] [stdout] 14 |     pub minor_version: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fields: Vec<FieldInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reference_kind` is never read
[INFO] [stdout]   --> src/class_file.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     ConstantMethodHandle {
[INFO] [stdout]    |     -------------------- field in this variant
[INFO] [stdout] 67 |         reference_kind: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor_index` is never read
[INFO] [stdout]   --> src/class_file.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ConstantMethodType {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 71 |         descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access_flags`, `name_index`, `descriptor_index`, and `attributes` are never read
[INFO] [stdout]   --> src/class_file.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 82 |     pub access_flags: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 83 |     pub name_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 84 |     pub descriptor_index: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     pub attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAttributeLength` is never constructed
[INFO] [stdout]    --> src/class_file.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub enum ParseError {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 110 |     InvalidAttributeLength,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/class_loader.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl ClassLoader {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn metrics(&self) -> &ClassLoadMetrics {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn with_cache_dir(mut self, cache_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn get_loaded_classes(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn add_classpath(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn get_classpath(&self) -> &[PathBuf] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn reload_class(&mut self, class_name: &str) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_system_classpath` is never used
[INFO] [stdout]    --> src/class_loader.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn get_system_classpath() -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnsupportedVersion(u16, u16),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     /// Invalid constant pool tag
[INFO] [stdout] 85 |     InvalidConstantPoolTag(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 86 |     /// Invalid attribute length
[INFO] [stdout] 87 |     InvalidAttributeLength,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     /// Invalid UTF-8 string in constant pool
[INFO] [stdout] 89 |     InvalidUtf8String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     /// Invalid method descriptor
[INFO] [stdout] 91 |     InvalidMethodDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     /// Invalid field descriptor
[INFO] [stdout] 93 |     InvalidFieldDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     /// Invalid opcode
[INFO] [stdout] 95 |     InvalidOpcode(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 96 |     /// Invalid bytecode
[INFO] [stdout] 97 |     InvalidBytecode(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub enum RuntimeError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 143 |     StackOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     ClassNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     InvalidTypeConversion(String, String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     ArithmeticOverflow,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     InvalidArrayType(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     /// Invalid array length
[INFO] [stdout] 169 |     InvalidArrayLength(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     IllegalState(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     InvalidOpcode(u8),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 182 |     /// Exception thrown
[INFO] [stdout] 183 |     ExceptionThrown(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     ArrayStoreException,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     IllegalAccessException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 |     /// Instantiation exception
[INFO] [stdout] 193 |     InstantiationException(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     /// String index out of bounds
[INFO] [stdout] 195 |     StringIndexOutOfBounds(usize, usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuntimeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub enum MemoryError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 273 |     HeapCorruption,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     /// Garbage collection failed
[INFO] [stdout] 275 |     GcError(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 276 |     /// Memory limit exceeded
[INFO] [stdout] 277 |     MemoryLimitExceeded(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 278 |     /// Invalid object header
[INFO] [stdout] 279 |     InvalidObjectHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 280 |     /// Invalid array header
[INFO] [stdout] 281 |     InvalidArrayHeader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 282 |     /// Memory allocation failed
[INFO] [stdout] 283 |     AllocationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     ArrayIndexOutOfBounds(usize, usize), // index, length
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     CompressedOopsOverflow(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/error.rs:350:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub enum ClassLoadingError {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 350 |     ClassCircularityError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     UnsupportedClassVersion(String, u16, u16),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 355 |     /// Class verification failed
[INFO] [stdout] 356 |     VerificationFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 357 |     /// Linkage error
[INFO] [stdout] 358 |     LinkageError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 359 |     /// Illegal access error
[INFO] [stdout] 360 |     IllegalAccessError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     /// Instantiation error
[INFO] [stdout] 362 |     InstantiationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 363 |     /// Class loader constraint violation
[INFO] [stdout] 364 |     ClassLoaderConstraintViolation(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassLoadingError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NativeLibraryNotFound`, `NativeLibraryLoadFailed`, and `UnsatisfiedLinkError` are never constructed
[INFO] [stdout]    --> src/error.rs:408:5
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub enum NativeError {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 408 |     NativeLibraryNotFound(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 409 |     /// Native library load failed
[INFO] [stdout] 410 |     NativeLibraryLoadFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 411 |     /// Unsatisfied link error
[INFO] [stdout] 412 |     UnsatisfiedLinkError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NativeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JvmResult` is never used
[INFO] [stdout]    --> src/error.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub type JvmResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InterpreterResult` is never used
[INFO] [stdout]    --> src/error.rs:444:10
[INFO] [stdout]     |
[INFO] [stdout] 444 | pub type InterpreterResult = Result<(), JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ClassFileResult` is never used
[INFO] [stdout]    --> src/error.rs:447:10
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub type ClassFileResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MemoryResult` is never used
[INFO] [stdout]    --> src/error.rs:450:10
[INFO] [stdout]     |
[INFO] [stdout] 450 | pub type MemoryResult<T> = Result<T, JvmError>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_runtime_error` is never used
[INFO] [stdout]    --> src/error.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn to_runtime_error<T: ToString>(msg: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_parse_error` is never used
[INFO] [stdout]    --> src/error.rs:458:8
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub fn to_parse_error<T: Into<ParseError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_memory_error` is never used
[INFO] [stdout]    --> src/error.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub fn to_memory_error<T: Into<MemoryError>>(err: T) -> JvmError {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToJvmError` is never used
[INFO] [stdout]    --> src/error.rs:478:11
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub trait ToJvmError<T> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Generation` is never used
[INFO] [stdout]   --> src/gc.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Generation {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenObject` is never constructed
[INFO] [stdout]   --> src/gc.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct GenObject {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerationalHeap` is never constructed
[INFO] [stdout]   --> src/gc.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct GenerationalHeap {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gc.rs:57:15
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl GenerationalHeap {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  57 |     pub const DEFAULT_PROMOTION_THRESHOLD: u8 = 8;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  58 |
[INFO] [stdout]  59 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn alloc_addr(&mut self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn allocate_string(&mut self, data: String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn allocate_array(&mut self, array_type: HeapArray) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn get_gen_object(&self, addr: u32) -> Option<&GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn get_gen_object_mut(&mut self, addr: u32) -> Option<&mut GenObject> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn mark_from_roots(&mut self, addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn collect_references(&self, addr: u32) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn minor_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn major_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn gc_stats(&self) -> GcStats {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn mark_object(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn object_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn array_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn array_length(&self, addr: u32) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn array_get(&self, addr: u32, index: usize) -> Result<Value, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn array_set(&mut self, addr: u32, index: usize, value: Value) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn monitor_enter(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 548 |     pub fn monitor_exit(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopedRoot` is never constructed
[INFO] [stdout]    --> src/gc.rs:585:12
[INFO] [stdout]     |
[INFO] [stdout] 585 | pub struct ScopedRoot {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `addr` are never used
[INFO] [stdout]    --> src/gc.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 590 | impl ScopedRoot {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 591 |     pub fn new(addr: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn addr(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_roots` is never used
[INFO] [stdout]    --> src/gc.rs:618:8
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub fn get_roots() -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GcStats` is never constructed
[INFO] [stdout]    --> src/gc.rs:624:12
[INFO] [stdout]     |
[INFO] [stdout] 624 | pub struct GcStats {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_root` is never used
[INFO] [stdout]    --> src/gc.rs:634:8
[INFO] [stdout]     |
[INFO] [stdout] 634 | pub fn add_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_root` is never used
[INFO] [stdout]    --> src/gc.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn remove_root(addr: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `method` is never read
[INFO] [stdout]   --> src/inline_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct InlineCacheEntry {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub method: Arc<MethodInfo>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InlineCacheEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/inline_cache.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl CallSiteCache {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entry_count` is never read
[INFO] [stdout]    --> src/inline_cache.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct CacheStats {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub entry_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CacheStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear_all` is never used
[INFO] [stdout]    --> src/inline_cache.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl InlineCacheManager {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_all(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_debugger` is never used
[INFO] [stdout]   --> src/memory/mod.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Memory {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn set_debugger(&mut self, debugger: JvmDebugger) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Heap {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     marked: HashSet<u32>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Heap` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/heap.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Heap {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn unmark_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn collect_garbage(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn memory_used(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `marked` is never read
[INFO] [stdout]   --> src/memory/heap_object.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct HeapObject {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub marked: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HeapObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Object`, `ObjectArray`, and `MultiArray` are never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum MemoryType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 13 |     /// Regular object allocation
[INFO] [stdout] 14 |     Object(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     ObjectArray(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 19 |     /// Multi-dimensional array
[INFO] [stdout] 20 |     MultiArray(String, Vec<i32>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/memory/memory_allocator.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PrimitiveArrayType {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 26 |     Int, Byte, Short, Char, Long, Float, Double, Boolean,
[INFO] [stdout]    |          ^^^^  ^^^^^  ^^^^  ^^^^  ^^^^^  ^^^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PrimitiveArrayType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/memory/monitor.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl Monitor {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn is_owned_by(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn is_biased_toward(&self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn revoke_bias(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn lock_stats(&self) -> MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn wait(&mut self, thread_id: u32) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn notify(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn notify_all(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonitorStats` is never constructed
[INFO] [stdout]    --> src/memory/monitor.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct MonitorStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_frame`, `pop_frame`, `current_frame`, `current_frame_mut`, and `depth` are never used
[INFO] [stdout]   --> src/memory/stack.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl JVMStack {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn push_frame(&mut self, frame: StackFrame) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn pop_frame(&mut self) -> Option<StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn current_frame(&self) -> Option<&StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn current_frame_mut(&mut self) -> Option<&mut StackFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn depth(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_reference` is never used
[INFO] [stdout]   --> src/memory/value.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_reference(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_name` and `elements` are never read
[INFO] [stdout]   --> src/annotations.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Annotation {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 12 |     pub type_name: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 13 |     pub elements: HashMap<String, ElementValue>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Annotation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/annotations.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ConstInt(i32),
[INFO] [stdout]    |     -------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElementValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     ConstInt(i32),
[INFO] [stdout] 19 +     ConstInt(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/annotations.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     ConstString(String),
[INFO] [stdout]    |     ----------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElementValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     ConstString(String),
[INFO] [stdout] 23 +     ConstString(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/annotations.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Array(Vec<ElementValue>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElementValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Array(Vec<ElementValue>),
[INFO] [stdout] 27 +     Array(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConstLong`, `ConstFloat`, `ConstDouble`, `Enum`, `Class`, and `Annotation` are never constructed
[INFO] [stdout]   --> src/annotations.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ElementValue {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 19 |     ConstInt(i32),
[INFO] [stdout] 20 |     ConstLong(i64),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 21 |     ConstFloat(f32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 22 |     ConstDouble(f64),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 23 |     ConstString(String),
[INFO] [stdout] 24 |     Enum(String, String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 25 |     Class(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 26 |     Annotation(Annotation),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElementValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_signature` is never used
[INFO] [stdout]    --> src/annotations.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn get_signature(class: &ClassFile, attrs: &[AttributeInfo]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_class_signature` is never used
[INFO] [stdout]    --> src/annotations.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl ClassFile {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_class_signature(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_annotations` and `get_signature_attr` are never used
[INFO] [stdout]    --> src/annotations.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl MethodInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 156 |     /// Get method-level annotations
[INFO] [stdout] 157 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn get_signature_attr(&self, class: &ClassFile) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_annotations` is never used
[INFO] [stdout]    --> src/annotations.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl FieldInfo {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 168 |     /// Get field-level annotations
[INFO] [stdout] 169 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `string_cache`, `exception_handlers`, `current_exception`, and `reflection_api` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Interpreter {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) reflection_api: ReflectionApi,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stdout]    --> src/interpreter/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 127 |     pub start_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |     pub end_pc: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 129 |     pub handler_pc: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 130 |     pub catch_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/interpreter/mod.rs:596:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl Interpreter {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 596 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn build_descriptor_for_args(args: &[Value]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 683 |     pub fn get_loaded_class_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 688 |     pub fn get_memory_usage(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 693 |     pub fn get_gc_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     pub fn is_jit_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn jit_manager(&mut self) -> Option<&mut JitManager> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 719 |     pub fn is_class_loaded(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn load_class<P: AsRef<Path>>(&mut self, path: P) -> Result<(), JvmError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 741 |     pub fn get_class(&self, name: &str) -> Option<&ClassFile> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 746 |     pub fn get_reflection_api(&self) -> &ReflectionApi {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     pub fn get_class_reflection(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 824 |     pub fn array_set_value(&mut self, array_ref: u32, index: i32, value: Value) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn array_set_int(&mut self, array_ref: u32, index: i32, value: i32) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 836 |     pub fn array_get_value(&mut self, array_ref: u32, index: i32) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |     pub fn array_get_int(&mut self, array_ref: u32, index: i32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     pub fn array_get_length(&mut self, array_ref: u32) -> Result<i32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 854 |     pub fn new_array_object(&mut self, component_type: &str, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 863 |     pub fn new_array_bool(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 872 |     pub fn new_array_byte(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 881 |     pub fn new_array_char(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 890 |     pub fn new_array_short(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 899 |     pub fn new_array_long(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 908 |     pub fn new_array_float(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 917 |     pub fn new_array_double(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 926 |     pub fn new_array_int(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_method`, `dispatch_instruction`, and `resolve_method` are never used
[INFO] [stdout]   --> src/interpreter/traits.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait BytecodeExecutor {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] 16 |     /// Execute a method bytecode
[INFO] [stdout] 17 |     fn execute_method(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn dispatch_instruction(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn resolve_method(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `new_instance`, `allocate_array`, `get_field_value`, `set_field_value`, and `get_memory_stats` are never used
[INFO] [stdout]   --> src/interpreter/traits.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait MemoryManager {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] 44 |     /// Create a new object instance
[INFO] [stdout] 45 |     fn new_instance(&mut self, class_name: &str) -> Result<Value, JvmError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn allocate_array(&mut self, array_type: &str, length: i32) -> Result<Value, JvmError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn get_field_value(&mut self, obj: &Value, field_name: &str) -> Result<Value, JvmError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn set_field_value(&mut self, obj: &Value, field_name: &str, value: Value) -> Result<(), JvmError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn get_memory_stats(&self) -> HashMap<String, usize>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ClassManager` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait ClassManager {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JitManagerProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait JitManagerProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DebugProvider` is never used
[INFO] [stdout]   --> src/interpreter/traits.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub trait DebugProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NativeMethodHandler` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub trait NativeMethodHandler {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RuntimeConfig` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:136:11
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub trait RuntimeConfig {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JvmInterpreter` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub trait JvmInterpreter: 
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interpreter` is never read
[INFO] [stdout]    --> src/interpreter/traits.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct DefaultInterpreterDelegate {
[INFO] [stdout]     |            -------------------------- field in this struct
[INFO] [stdout] 189 |     pub interpreter: crate::interpreter::Interpreter,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_class_manager` is never used
[INFO] [stdout]    --> src/interpreter/traits.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |         fn test_class_manager<T: ClassManager + ?Sized>(t: &mut T) {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stdout]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Interpreter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn handle_return(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn handle_ireturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn handle_areturn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_interface_method` is never used
[INFO] [stdout]   --> src/interpreter/invocation.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_1` is never used
[INFO] [stdout]  --> src/native.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const JNI_VERSION_1_1: i32 = 0x00010001;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_2` is never used
[INFO] [stdout]  --> src/native.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const JNI_VERSION_1_2: i32 = 0x00010002;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_4` is never used
[INFO] [stdout]  --> src/native.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const JNI_VERSION_1_4: i32 = 0x00010004;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_6` is never used
[INFO] [stdout]   --> src/native.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const JNI_VERSION_1_6: i32 = 0x00010006;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JNI_VERSION_1_8` is never used
[INFO] [stdout]   --> src/native.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const JNI_VERSION_1_8: i32 = 0x00010008;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JNINativeInterface_` is never constructed
[INFO] [stdout]   --> src/native.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct JNINativeInterface_ {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `JNINativeMethod` is never used
[INFO] [stdout]   --> src/native.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type JNINativeMethod = unsafe extern "C" fn(*mut c_void, *mut c_void, *mut *mut jvalue);
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `jvalue` is never used
[INFO] [stdout]   --> src/native.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub union jvalue {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/native.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait NativeMethod: Send + Sync {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/native.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct SimpleNativeMethod {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 60 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_native` is never used
[INFO] [stdout]    --> src/native.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NativeRegistry {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn is_native(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_to_jvalue` is never used
[INFO] [stdout]    --> src/native.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn value_to_jvalue(value: Value) -> jvalue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jvalue_to_value` is never used
[INFO] [stdout]    --> src/native.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn jvalue_to_value(jvalue: jvalue) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct FieldReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MethodReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct MethodReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstructorReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ConstructorReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassReflection` is never constructed
[INFO] [stdout]   --> src/reflection.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ClassReflection {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `descriptor_to_type` is never used
[INFO] [stdout]   --> src/reflection.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn descriptor_to_type(descriptor: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `class_to_reflection` is never used
[INFO] [stdout]    --> src/reflection.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn class_to_reflection(class: &ClassFile) -> ClassReflection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_method_params` is never used
[INFO] [stdout]    --> src/reflection.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn parse_method_params(descriptor: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_return_type` is never used
[INFO] [stdout]    --> src/reflection.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn parse_return_type(descriptor: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/reflection.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl ReflectionApi {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn get_class(&self, class_name: &str) -> Option<ClassReflection> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn get_fields(&self, class_name: &str) -> Vec<FieldReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn get_methods(&self, class_name: &str) -> Vec<MethodReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn get_constructors(&self, class_name: &str) -> Vec<ConstructorReflection> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn get_super_class(&self, class_name: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn get_interfaces(&self, class_name: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn get_class_modifiers(&self, class_name: &str) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn is_interface(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn is_abstract(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn is_public(&self, class_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn is_field_public(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn is_field_static(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn is_method_public(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn is_method_static(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn set_field_value(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn invoke_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUBLIC` is never used
[INFO] [stdout]    --> src/reflection.rs:503:15
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub const PUBLIC: u16 = 0x0001;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIVATE` is never used
[INFO] [stdout]    --> src/reflection.rs:504:15
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub const PRIVATE: u16 = 0x0002;
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTECTED` is never used
[INFO] [stdout]    --> src/reflection.rs:505:15
[INFO] [stdout]     |
[INFO] [stdout] 505 |     pub const PROTECTED: u16 = 0x0004;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATIC` is never used
[INFO] [stdout]    --> src/reflection.rs:506:15
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub const STATIC: u16 = 0x0008;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FINAL` is never used
[INFO] [stdout]    --> src/reflection.rs:507:15
[INFO] [stdout]     |
[INFO] [stdout] 507 |     pub const FINAL: u16 = 0x0010;
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYNCHRONIZED` is never used
[INFO] [stdout]    --> src/reflection.rs:508:15
[INFO] [stdout]     |
[INFO] [stdout] 508 |     pub const SYNCHRONIZED: u16 = 0x0020;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOLATILE` is never used
[INFO] [stdout]    --> src/reflection.rs:509:15
[INFO] [stdout]     |
[INFO] [stdout] 509 |     pub const VOLATILE: u16 = 0x0040;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSIENT` is never used
[INFO] [stdout]    --> src/reflection.rs:510:15
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub const TRANSIENT: u16 = 0x0080;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NATIVE` is never used
[INFO] [stdout]    --> src/reflection.rs:511:15
[INFO] [stdout]     |
[INFO] [stdout] 511 |     pub const NATIVE: u16 = 0x0100;
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE` is never used
[INFO] [stdout]    --> src/reflection.rs:512:15
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub const INTERFACE: u16 = 0x0200;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ABSTRACT` is never used
[INFO] [stdout]    --> src/reflection.rs:513:15
[INFO] [stdout]     |
[INFO] [stdout] 513 |     pub const ABSTRACT: u16 = 0x0400;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRICTFP` is never used
[INFO] [stdout]    --> src/reflection.rs:514:15
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub const STRICTFP: u16 = 0x0800;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_serializable` is never used
[INFO] [stdout]   --> src/serialization.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn is_serializable(_class_name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_html_fragment` is never used
[INFO] [stdout]   --> src/visualization.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn export_html_fragment(frames: &[StackFrame]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `html_escape` is never used
[INFO] [stdout]   --> src/visualization.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn html_escape(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_compiled` is never read
[INFO] [stdout]   --> src/jit.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MethodProfile {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub last_compiled: Option<Instant>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_method_size` is never read
[INFO] [stdout]    --> src/jit.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct TieredCompilationConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub max_method_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TieredCompilationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IrGenerationError` is never constructed
[INFO] [stdout]    --> src/jit.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub enum JitError {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 149 |     IrGenerationError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JitError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `level` are never read
[INFO] [stdout]    --> src/jit.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct CompiledCode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 174 |     /// Function name
[INFO] [stdout] 175 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub level: CompilationLevel,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompiledCode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `config` and `set_config` are never used
[INFO] [stdout]    --> src/jit.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl CraneliftJitCompiler {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn config(&self) -> &TieredCompilationConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn set_config(&mut self, config: TieredCompilationConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `link_executable` is never used
[INFO] [stdout]    --> src/jit.rs:392:12
[INFO] [stdout]     |
[INFO] [stdout] 380 | impl AotCompiler {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn link_executable(objects: &[PathBuf], output_path: &Path) -> JitResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native_registry` is never read
[INFO] [stdout]    --> src/jit.rs:593:5
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct JitManager {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 593 |     native_registry: NativeRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_or_compile_method` and `is_compiled` are never used
[INFO] [stdout]    --> src/jit.rs:616:12
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl JitManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn get_or_compile_method(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn is_compiled(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmIrGenerator` is never constructed
[INFO] [stdout]    --> src/jit.rs:573:16
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub struct LlvmIrGenerator {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/jit.rs:576:16
[INFO] [stdout]     |
[INFO] [stdout] 575 |     impl LlvmIrGenerator {
[INFO] [stdout]     |     -------------------- associated function in this implementation
[INFO] [stdout] 576 |         pub fn new(_module_name: &str) -> Result<Self, String> {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trace_classes`, `trace_methods`, and `max_stack_frames` are never read
[INFO] [stdout]   --> src/debug.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DebugConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub trace_classes: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// Enable method entry/exit logging
[INFO] [stdout] 15 |     pub trace_methods: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Maximum number of stack frames to log (None for all)
[INFO] [stdout] 17 |     pub max_stack_frames: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DebugConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/debug.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl JvmDebugger {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn log_method_entry(&self, class_name: &str, method_name: &str, method_descriptor: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn log_method_exit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn log_class_loaded(&self, class_name: &str, source: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn log_memory_access(&self, address: u32, operation: &str, value: Option<&Value>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn log_exception(&self, exception: &str, handler_pc: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn log_gc(&self, freed_objects: usize, freed_bytes: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     pub fn instruction_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn reset_instruction_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rng_seed`, `fixed_timestamp_ns`, and `max_pause_ns` are never read
[INFO] [stdout]   --> src/deterministic.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DeterministicConfig {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout]  9 |     /// Fixed seed for any RNG (0 = use system time when disabled)
[INFO] [stdout] 10 |     pub rng_seed: u64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     /// Use fixed "epoch" timestamp instead of actual time
[INFO] [stdout] 12 |     pub fixed_timestamp_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     /// Target max pause time in ns (for real-time / HFT; advisory)
[INFO] [stdout] 14 |     pub max_pause_ns: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeterministicConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `blockchain`, `realtime`, and `hft` are never used
[INFO] [stdout]   --> src/deterministic.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl DeterministicConfig {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 28 |     /// Preset for blockchain / smart contract execution
[INFO] [stdout] 29 |     pub fn blockchain() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn realtime(max_pause_ns: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn hft() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeterministicMode` is never constructed
[INFO] [stdout]   --> src/deterministic.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct DeterministicMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enabled`, `set_enabled`, `rng_seed`, and `timestamp_ns` are never used
[INFO] [stdout]   --> src/deterministic.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl DeterministicMode {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 59 |     pub fn new(config: DeterministicConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn rng_seed(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn timestamp_ns(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_max_samples`, `set_enabled`, `method_counts`, `method_time_ns`, and `hotspots` are never used
[INFO] [stdout]    --> src/profiler.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl Profiler {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn with_max_samples(max_samples: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn method_counts(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn method_time_ns(&self) -> HashMap<String, u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn hotspots(&self, top_n: usize) -> Vec<(String, u64, u64)> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `is_enabled`, and `clear` are never used
[INFO] [stdout]    --> src/trace.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TraceRecorder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn with_capacity(max_steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target_class`, `target_ref`, and `interceptor` are never read
[INFO] [stdout]   --> src/aop.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Proxy {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout]  8 |     pub target_class: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  9 |     pub target_ref: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 10 |     pub interceptor: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Proxy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdviceKind` is never used
[INFO] [stdout]   --> src/aop.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum AdviceKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pointcut` is never constructed
[INFO] [stdout]   --> src/aop.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Pointcut {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AopRegistry` is never constructed
[INFO] [stdout]   --> src/aop.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AopRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_advice`, and `matches` are never used
[INFO] [stdout]   --> src/aop.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl AopRegistry {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn add_advice(&mut self, pointcut: Pointcut, kind: AdviceKind) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn matches(&self, class_name: &str, method_name: &str) -> Option<AdviceKind> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `K8sOperatorConfig` is never constructed
[INFO] [stdout]  --> src/cloud.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct K8sOperatorConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DistributedObjectRef` is never constructed
[INFO] [stdout]   --> src/cloud.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DistributedObjectRef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JavaExtension` is never used
[INFO] [stdout]   --> src/extensions.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait JavaExtension: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NativeCallback` is never used
[INFO] [stdout]   --> src/extensions.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | type NativeCallback = Arc<dyn Fn(&[Value]) -> Result<Value, String> + Send + Sync>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExtensionRegistry` is never constructed
[INFO] [stdout]   --> src/extensions.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ExtensionRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_native`, `has_native`, `invoke_native`, `load`, and `loaded_extensions` are never used
[INFO] [stdout]    --> src/extensions.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn register_native(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn has_native(&self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn invoke_native(&self, key: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn load(&self, ext: &dyn JavaExtension) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn loaded_extensions(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_REGISTRY` is never used
[INFO] [stdout]    --> src/extensions.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | static GLOBAL_REGISTRY: OnceLock<RwLock<ExtensionRegistry>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `global` is never used
[INFO] [stdout]    --> src/extensions.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ExtensionRegistry {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 151 |     /// Global extension registry (used by Interpreter when interop is enabled)
[INFO] [stdout] 152 |     pub fn global() -> &'static RwLock<ExtensionRegistry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotReloadManager` is never constructed
[INFO] [stdout]   --> src/hot_reload.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HotReloadManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_enabled`, `register_reloadable`, `class_file_changed`, `record_class_loaded`, and `replace_method` are never used
[INFO] [stdout]   --> src/hot_reload.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HotReloadManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn register_reloadable(&mut self, class: &str, _method: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn class_file_changed(&self, path: &Path) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn record_class_loaded(&mut self, class_name: &str, path: &Path) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn replace_method(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stack_overflow_check` is never read
[INFO] [stdout]   --> src/security.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SecurityConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub stack_overflow_check: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_stack_overflow`, `violation_count`, and `config` are never used
[INFO] [stdout]    --> src/security.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Sanitizer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn check_stack_overflow(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn violation_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn config(&self) -> &SecurityConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 52.89s
[INFO] running `Command { std: "docker" "inspect" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "92852262c90f9e08dc54f2a8e3cd1a80a4865e70a611b67c99bb7629e199fed6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `class`
[INFO] [stderr]    --> src/interpreter/traits.rs:204:9
[INFO] [stderr]     |
[INFO] [stderr] 204 |         class: &ClassFile,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bytecode`
[INFO] [stderr]    --> src/interpreter/traits.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |         bytecode: &[u8],
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]    --> src/interpreter/traits.rs:206:9
[INFO] [stderr]     |
[INFO] [stderr] 206 |         frame: &mut StackFrame,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opcode`
[INFO] [stderr]    --> src/interpreter/traits.rs:207:9
[INFO] [stderr]     |
[INFO] [stderr] 207 |         opcode: u8,
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `class_name`
[INFO] [stderr]    --> src/interpreter/traits.rs:215:9
[INFO] [stderr]     |
[INFO] [stderr] 215 |         class_name: &str,
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `method_name`
[INFO] [stderr]    --> src/interpreter/traits.rs:216:9
[INFO] [stderr]     |
[INFO] [stderr] 216 |         method_name: &str,
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `descriptor`
[INFO] [stderr]    --> src/interpreter/traits.rs:217:9
[INFO] [stderr]     |
[INFO] [stderr] 217 |         descriptor: &str,
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_descriptor`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `idx`
[INFO] [stderr]    --> src/cranelift_jit.rs:274:37
[INFO] [stderr]     |
[INFO] [stderr] 274 | ...                   let idx = result[i - 2];
[INFO] [stderr]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pop_int_ref`
[INFO] [stderr]    --> src/cranelift_jit.rs:431:13
[INFO] [stderr]     |
[INFO] [stderr] 431 |         let pop_int_ref    = self.module.declare_func_in_func(pop_int_fn,    &mut ctx.func);
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pop_int_ref`
[INFO] [stderr] 
[INFO] [stderr] warning: associated constant `GROWTH_FACTOR` is never used
[INFO] [stderr]   --> src/allocator.rs:40:11
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl ArenaAllocator {
[INFO] [stderr]    | ------------------- associated constant in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `string_cache`, `exception_handlers`, and `current_exception` are never read
[INFO] [stderr]    --> src/interpreter/mod.rs:108:16
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct Interpreter {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stderr]     |                ^^^^^^^^^^^^
[INFO] [stderr] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start_pc`, `end_pc`, `handler_pc`, and `catch_type` are never read
[INFO] [stderr]    --> src/interpreter/mod.rs:127:9
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub(crate) struct ExceptionHandler {
[INFO] [stderr]     |                   ---------------- fields in this struct
[INFO] [stderr] 127 |     pub start_pc: usize,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 128 |     pub end_pc: usize,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 129 |     pub handler_pc: usize,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 130 |     pub catch_type: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ExceptionHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `handle_return`, `handle_ireturn`, and `handle_areturn` are never used
[INFO] [stderr]    --> src/interpreter/dispatch_table.rs:308:8
[INFO] [stderr]     |
[INFO] [stderr]  40 | impl Interpreter {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 308 |     fn handle_return(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     fn handle_ireturn(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 333 |     fn handle_areturn(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `resolve_interface_method` is never used
[INFO] [stderr]   --> src/interpreter/invocation.rs:48:19
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl Interpreter {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub(crate) fn resolve_interface_method(
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `native_registry` is never read
[INFO] [stderr]    --> src/jit.rs:593:5
[INFO] [stderr]     |
[INFO] [stderr] 587 | pub struct JitManager {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 593 |     native_registry: NativeRegistry,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_loaded_class_count`, `get_memory_usage`, and `get_gc_count` are never used
[INFO] [stderr]    --> src/repl.rs:453:8
[INFO] [stderr]     |
[INFO] [stderr] 449 | trait ReplInterpreterExt {
[INFO] [stderr]     |       ------------------ methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 453 |     fn get_loaded_class_count(&self) -> usize;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 454 |     fn get_memory_usage(&self) -> usize;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 455 |     fn get_gc_count(&self) -> usize;
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `jvmrs` (lib) generated 16 warnings (run `cargo fix --lib -p jvmrs` to apply 9 suggestions)
[INFO] [stderr] warning: unused imports: `ArenaAllocator`, `MemoryAllocator`, `MemoryStats`, `MemoryType`, `PrimitiveArrayType`, and `TlabAllocator`
[INFO] [stderr]   --> src/memory/mod.rs:68:28
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub use memory_allocator::{MemoryAllocator, ArenaAllocator, TlabAllocator, MemoryType, PrimitiveArrayType, MemoryStats};
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `output_path`
[INFO] [stderr]    --> src/main.rs:492:17
[INFO] [stderr]     |
[INFO] [stderr] 492 |     if let Some(ref output_path) = wasm_output {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ArenaSlot` is never used
[INFO] [stderr]   --> src/allocator.rs:14:6
[INFO] [stderr]    |
[INFO] [stderr] 14 | enum ArenaSlot {
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ArenaAllocator` is never constructed
[INFO] [stderr]   --> src/allocator.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub struct ArenaAllocator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/allocator.rs:37:11
[INFO] [stderr]     |
[INFO] [stderr]  35 | impl ArenaAllocator {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr]  36 |     /// Initial capacity (number of object slots)
[INFO] [stderr]  37 |     const INITIAL_CAPACITY: usize = 256;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  40 |     const GROWTH_FACTOR: f64 = 1.5;
[INFO] [stderr]     |           ^^^^^^^^^^^^^
[INFO] [stderr]  41 |
[INFO] [stderr]  42 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  51 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  61 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  91 |     fn addr_to_index(&self, addr: u32) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 105 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     pub fn iter_objects(&self) -> impl Iterator<Item = (u32, &HeapObject)> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub fn object_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ArrayArena` is never constructed
[INFO] [stderr]    --> src/allocator.rs:157:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | pub struct ArrayArena {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/allocator.rs:164:11
[INFO] [stderr]     |
[INFO] [stderr] 163 | impl ArrayArena {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 164 |     const INITIAL_CAPACITY: usize = 128;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 165 |
[INFO] [stderr] 166 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     pub fn allocate(&mut self, array: HeapArray) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn free_slot(&mut self, addr: u32) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 213 |     pub fn iter_arrays(&self) -> impl Iterator<Item = (u32, &HeapArray)> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 222 |     pub fn array_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_cache_dir` is never used
[INFO] [stderr]    --> src/class_cache.rs:198:8
[INFO] [stderr]     |
[INFO] [stderr] 198 | pub fn default_cache_dir() -> PathBuf {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `magic`, `minor_version`, `major_version`, `access_flags`, and `fields` are never read
[INFO] [stderr]   --> src/class_file.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct ClassFile {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 13 |     pub magic: u32,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 14 |     pub minor_version: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 15 |     pub major_version: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 16 |     pub constant_pool: Vec<ConstantPoolEntry>,
[INFO] [stderr] 17 |     pub access_flags: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fields: Vec<FieldInfo>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ClassFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `reference_kind` is never read
[INFO] [stderr]   --> src/class_file.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     ConstantMethodHandle {
[INFO] [stderr]    |     -------------------- field in this variant
[INFO] [stderr] 67 |         reference_kind: u8,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `descriptor_index` is never read
[INFO] [stderr]   --> src/class_file.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |     ConstantMethodType {
[INFO] [stderr]    |     ------------------ field in this variant
[INFO] [stderr] 71 |         descriptor_index: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ConstantPoolEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `access_flags`, `name_index`, `descriptor_index`, and `attributes` are never read
[INFO] [stderr]   --> src/class_file.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub struct FieldInfo {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 82 |     pub access_flags: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 83 |     pub name_index: u16,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 84 |     pub descriptor_index: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 85 |     pub attributes: Vec<AttributeInfo>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `InvalidAttributeLength` is never constructed
[INFO] [stderr]    --> src/class_file.rs:110:5
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub enum ParseError {
[INFO] [stderr]     |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 110 |     InvalidAttributeLength,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/class_loader.rs:32:12
[INFO] [stderr]     |
[INFO] [stderr]  30 | impl ClassLoader {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr]  31 |     /// Create a new class loader with the given classpath
[INFO] [stderr]  32 |     pub fn new(classpath: Vec<PathBuf>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  52 |     pub fn metrics(&self) -> &ClassLoadMetrics {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  57 |     pub fn with_cache_dir(mut self, cache_dir: PathBuf) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn get_loaded_classes(&self) -> Vec<&String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn add_classpath(&mut self, path: PathBuf) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     pub fn get_classpath(&self) -> &[PathBuf] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn clear_cache(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn reload_class(&mut self, class_name: &str) -> Result<(), JvmError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_classpath` is never used
[INFO] [stderr]    --> src/class_loader.rs:215:8
[INFO] [stderr]     |
[INFO] [stderr] 215 | pub fn parse_classpath(classpath_str: &str) -> Vec<PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_system_classpath` is never used
[INFO] [stderr]    --> src/class_loader.rs:231:8
[INFO] [stderr]     |
[INFO] [stderr] 231 | pub fn get_system_classpath() -> Vec<PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/error.rs:81:5
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub enum ParseError {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 80 |     /// Invalid magic number (not 0xCAFEBABE)
[INFO] [stderr] 81 |     InvalidMagic(u32),
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 82 |     /// Unsupported class file version
[INFO] [stderr] 83 |     UnsupportedVersion(u16, u16),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 84 |     /// Invalid constant pool tag
[INFO] [stderr] 85 |     InvalidConstantPoolTag(u8),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 86 |     /// Invalid attribute length
[INFO] [stderr] 87 |     InvalidAttributeLength,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 88 |     /// Invalid UTF-8 string in constant pool
[INFO] [stderr] 89 |     InvalidUtf8String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 90 |     /// Invalid method descriptor
[INFO] [stderr] 91 |     InvalidMethodDescriptor(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 92 |     /// Invalid field descriptor
[INFO] [stderr] 93 |     InvalidFieldDescriptor(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 94 |     /// Invalid opcode
[INFO] [stderr] 95 |     InvalidOpcode(u8),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 96 |     /// Invalid bytecode
[INFO] [stderr] 97 |     InvalidBytecode(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/error.rs:143:5
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub enum RuntimeError {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 143 |     StackOverflow,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     ClassNotFound(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 159 |     InvalidTypeConversion(String, String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     ArithmeticOverflow,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     InvalidArrayType(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 168 |     /// Invalid array length
[INFO] [stderr] 169 |     InvalidArrayLength(usize),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     IllegalState(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     InvalidOpcode(u8),
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 182 |     /// Exception thrown
[INFO] [stderr] 183 |     ExceptionThrown(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 187 |     ArrayStoreException,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     IllegalAccessException(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 192 |     /// Instantiation exception
[INFO] [stderr] 193 |     InstantiationException(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 194 |     /// String index out of bounds
[INFO] [stderr] 195 |     StringIndexOutOfBounds(usize, usize),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RuntimeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/error.rs:263:5
[INFO] [stderr]     |
[INFO] [stderr] 261 | pub enum MemoryError {
[INFO] [stderr]     |          ----------- variants in this enum
[INFO] [stderr] 262 |     /// Out of memory
[INFO] [stderr] 263 |     OutOfMemory,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 273 |     HeapCorruption,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 274 |     /// Garbage collection failed
[INFO] [stderr] 275 |     GcError(String),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 276 |     /// Memory limit exceeded
[INFO] [stderr] 277 |     MemoryLimitExceeded(usize),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 278 |     /// Invalid object header
[INFO] [stderr] 279 |     InvalidObjectHeader,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 280 |     /// Invalid array header
[INFO] [stderr] 281 |     InvalidArrayHeader,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 282 |     /// Memory allocation failed
[INFO] [stderr] 283 |     AllocationFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 289 |     ArrayIndexOutOfBounds(usize, usize), // index, length
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 293 |     CompressedOopsOverflow(u32),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `MemoryError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/error.rs:346:5
[INFO] [stderr]     |
[INFO] [stderr] 344 | pub enum ClassLoadingError {
[INFO] [stderr]     |          ----------------- variants in this enum
[INFO] [stderr] 345 |     /// Class file not found
[INFO] [stderr] 346 |     ClassFileNotFound(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 350 |     ClassCircularityError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 354 |     UnsupportedClassVersion(String, u16, u16),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 355 |     /// Class verification failed
[INFO] [stderr] 356 |     VerificationFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 357 |     /// Linkage error
[INFO] [stderr] 358 |     LinkageError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 359 |     /// Illegal access error
[INFO] [stderr] 360 |     IllegalAccessError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 361 |     /// Instantiation error
[INFO] [stderr] 362 |     InstantiationError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 363 |     /// Class loader constraint violation
[INFO] [stderr] 364 |     ClassLoaderConstraintViolation(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ClassLoadingError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `NativeLibraryNotFound`, `NativeLibraryLoadFailed`, and `UnsatisfiedLinkError` are never constructed
[INFO] [stderr]    --> src/error.rs:408:5
[INFO] [stderr]     |
[INFO] [stderr] 402 | pub enum NativeError {
[INFO] [stderr]     |          ----------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 408 |     NativeLibraryNotFound(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 409 |     /// Native library load failed
[INFO] [stderr] 410 |     NativeLibraryLoadFailed(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 411 |     /// Unsatisfied link error
[INFO] [stderr] 412 |     UnsatisfiedLinkError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NativeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `JvmResult` is never used
[INFO] [stderr]    --> src/error.rs:441:10
[INFO] [stderr]     |
[INFO] [stderr] 441 | pub type JvmResult<T> = Result<T, JvmError>;
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `InterpreterResult` is never used
[INFO] [stderr]    --> src/error.rs:444:10
[INFO] [stderr]     |
[INFO] [stderr] 444 | pub type InterpreterResult = Result<(), JvmError>;
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ClassFileResult` is never used
[INFO] [stderr]    --> src/error.rs:447:10
[INFO] [stderr]     |
[INFO] [stderr] 447 | pub type ClassFileResult<T> = Result<T, JvmError>;
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `MemoryResult` is never used
[INFO] [stderr]    --> src/error.rs:450:10
[INFO] [stderr]     |
[INFO] [stderr] 450 | pub type MemoryResult<T> = Result<T, JvmError>;
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_runtime_error` is never used
[INFO] [stderr]    --> src/error.rs:453:8
[INFO] [stderr]     |
[INFO] [stderr] 453 | pub fn to_runtime_error<T: ToString>(msg: T) -> JvmError {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_parse_error` is never used
[INFO] [stderr]    --> src/error.rs:458:8
[INFO] [stderr]     |
[INFO] [stderr] 458 | pub fn to_parse_error<T: Into<ParseError>>(err: T) -> JvmError {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_memory_error` is never used
[INFO] [stderr]    --> src/error.rs:468:8
[INFO] [stderr]     |
[INFO] [stderr] 468 | pub fn to_memory_error<T: Into<MemoryError>>(err: T) -> JvmError {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ToJvmError` is never used
[INFO] [stderr]    --> src/error.rs:478:11
[INFO] [stderr]     |
[INFO] [stderr] 478 | pub trait ToJvmError<T> {
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Generation` is never used
[INFO] [stderr]   --> src/gc.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum Generation {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GenObject` is never constructed
[INFO] [stderr]   --> src/gc.rs:22:8
[INFO] [stderr]    |
[INFO] [stderr] 22 | struct GenObject {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GenerationalHeap` is never constructed
[INFO] [stderr]   --> src/gc.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct GenerationalHeap {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/gc.rs:57:15
[INFO] [stderr]     |
[INFO] [stderr]  56 | impl GenerationalHeap {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr]  57 |     pub const DEFAULT_PROMOTION_THRESHOLD: u8 = 8;
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]  58 |
[INFO] [stderr]  59 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  74 |     pub fn with_debugger(debugger: JvmDebugger) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  89 |     fn alloc_addr(&mut self) -> u32 {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn allocate(&mut self, class_name: String) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn allocate_string(&mut self, data: String) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub fn allocate_array(&mut self, array_type: HeapArray) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 145 |     fn get_gen_object(&self, addr: u32) -> Option<&GenObject> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 151 |     fn get_gen_object_mut(&mut self, addr: u32) -> Option<&mut GenObject> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub fn get_object(&self, addr: u32) -> Option<&HeapObject> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn get_object_mut(&mut self, addr: u32) -> Option<&mut HeapObject> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 178 |     pub fn get_array(&self, addr: u32) -> Option<&HeapArray> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub fn get_array_mut(&mut self, addr: u32) -> Option<&mut HeapArray> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     fn mark_from_roots(&mut self, addr: u32) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     fn collect_references(&self, addr: u32) -> Vec<u32> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub fn minor_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub fn major_gc(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 341 |     pub fn gc_stats(&self) -> GcStats {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 353 |     pub fn mark_object(&mut self, addr: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 360 |     pub fn unmark_all(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 371 |     pub fn object_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 375 |     pub fn array_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 379 |     pub fn memory_used(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 400 |     pub fn array_length(&self, addr: u32) -> Result<usize, MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 416 |     pub fn array_get(&self, addr: u32, index: usize) -> Result<Value, MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 461 |     pub fn array_set(&mut self, addr: u32, index: usize, value: Value) -> Result<(), MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 527 |     pub fn monitor_enter(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 548 |     pub fn monitor_exit(&mut self, addr: u32, thread_id: u32) -> Result<(), MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 564 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ScopedRoot` is never constructed
[INFO] [stderr]    --> src/gc.rs:585:12
[INFO] [stderr]     |
[INFO] [stderr] 585 | pub struct ScopedRoot {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `addr` are never used
[INFO] [stderr]    --> src/gc.rs:591:12
[INFO] [stderr]     |
[INFO] [stderr] 590 | impl ScopedRoot {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 591 |     pub fn new(addr: u32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 601 |     pub fn addr(&self) -> u32 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_roots` is never used
[INFO] [stderr]    --> src/gc.rs:618:8
[INFO] [stderr]     |
[INFO] [stderr] 618 | pub fn get_roots() -> Vec<u32> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GcStats` is never constructed
[INFO] [stderr]    --> src/gc.rs:624:12
[INFO] [stderr]     |
[INFO] [stderr] 624 | pub struct GcStats {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `add_root` is never used
[INFO] [stderr]    --> src/gc.rs:634:8
[INFO] [stderr]     |
[INFO] [stderr] 634 | pub fn add_root(addr: u32) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `remove_root` is never used
[INFO] [stderr]    --> src/gc.rs:641:8
[INFO] [stderr]     |
[INFO] [stderr] 641 | pub fn remove_root(addr: u32) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `method` is never read
[INFO] [stderr]   --> src/inline_cache.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct InlineCacheEntry {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub method: Arc<MethodInfo>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `InlineCacheEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `stats` and `clear` are never used
[INFO] [stderr]    --> src/inline_cache.rs:106:12
[INFO] [stderr]     |
[INFO] [stderr]  49 | impl CallSiteCache {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn stats(&self) -> CacheStats {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CacheStats` is never constructed
[INFO] [stderr]    --> src/inline_cache.rs:135:12
[INFO] [stderr]     |
[INFO] [stderr] 135 | pub struct CacheStats {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_stats` and `clear_all` are never used
[INFO] [stderr]    --> src/inline_cache.rs:211:12
[INFO] [stderr]     |
[INFO] [stderr] 151 | impl InlineCacheManager {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub fn get_stats(&self) -> Vec<((String, String, String, usize), CacheStats)> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 224 |     pub fn clear_all(&self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_debugger` is never used
[INFO] [stderr]   --> src/memory/mod.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 81 | impl Memory {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 98 |     pub fn set_debugger(&mut self, debugger: JvmDebugger) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `marked` is never read
[INFO] [stderr]   --> src/memory/heap.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct Heap {
[INFO] [stderr]    |            ---- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 20 |     marked: HashSet<u32>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Heap` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/memory/heap.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr]  25 | impl Heap {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn get_string_data(&self, addr: u32) -> Option<&String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub fn is_string(&self, addr: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 154 |     pub fn mark(&mut self, addr: u32) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn unmark_all(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn collect_garbage(&mut self, roots: &[u32]) -> Result<usize, MemoryError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 234 |     pub fn memory_used(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 460 |     pub fn owns_monitor(&self, addr: u32, thread_id: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `marked` is never read
[INFO] [stderr]   --> src/memory/heap_object.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct HeapObject {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub marked: bool,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `HeapObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MemoryType` is never used
[INFO] [stderr]   --> src/memory/memory_allocator.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum MemoryType {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `PrimitiveArrayType` is never used
[INFO] [stderr]   --> src/memory/memory_allocator.rs:25:10
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub enum PrimitiveArrayType {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MemoryStats` is never constructed
[INFO] [stderr]   --> src/memory/memory_allocator.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct MemoryStats {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MemoryAllocator` is never used
[INFO] [stderr]   --> src/memory/memory_allocator.rs:39:11
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub trait MemoryAllocator {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ArenaAllocator` is never constructed
[INFO] [stderr]   --> src/memory/memory_allocator.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub struct ArenaAllocator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MemoryArena` is never constructed
[INFO] [stderr]   --> src/memory/memory_allocator.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct MemoryArena {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `add_arena` are never used
[INFO] [stderr]   --> src/memory/memory_allocator.rs:73:12
[INFO] [stderr]    |
[INFO] [stderr] 71 | impl ArenaAllocator {
[INFO] [stderr]    | ------------------- associated items in this implementation
[INFO] [stderr] 72 |     /// Create a new arena allocator
[INFO] [stderr] 73 |     pub fn new(arena_size: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 97 |     fn add_arena(&mut self, size: usize) -> Result<(), MemoryError> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TlabAllocator` is never constructed
[INFO] [stderr]    --> src/memory/memory_allocator.rs:232:12
[INFO] [stderr]     |
[INFO] [stderr] 232 | pub struct TlabAllocator {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get_or_create_tlab` are never used
[INFO] [stderr]    --> src/memory/memory_allocator.rs:239:12
[INFO] [stderr]     |
[INFO] [stderr] 238 | impl TlabAllocator {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 239 |     pub fn new(tlab_size: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 252 |     fn get_or_create_tlab(&mut self) -> &mut Tlab {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Tlab` is never constructed
[INFO] [stderr]    --> src/memory/memory_allocator.rs:354:8
[INFO] [stderr]     |
[INFO] [stderr] 354 | struct Tlab {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/memory/monitor.rs:148:12
[INFO] [stderr]     |
[INFO] [stderr]  35 | impl Monitor {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn is_owned_by(&self, thread_id: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn is_biased_toward(&self, thread_id: u32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn revoke_bias(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn lock_stats(&self) -> MonitorStats {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub fn wait(&mut self, thread_id: u32) -> bool {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn notify(&mut self) -> bool {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     pub fn notify_all(&mut self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MonitorStats` is never constructed
[INFO] [stderr]    --> src/memory/monitor.rs:236:12
[INFO] [stderr]     |
[INFO] [stderr] 236 | pub struct MonitorStats {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `push_frame`, `pop_frame`, `current_frame`, `current_frame_mut`, and `depth` are never used
[INFO] [stderr]   --> src/memory/stack.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl JVMStack {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn push_frame(&mut self, frame: StackFrame) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub fn pop_frame(&mut self) -> Option<StackFrame> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn current_frame(&self) -> Option<&StackFrame> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn current_frame_mut(&mut self) -> Option<&mut StackFrame> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn depth(&self) -> usize {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Boolean`, `Byte`, `Char`, and `Short` are never constructed
[INFO] [stderr]  --> src/memory/value.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum Value {
[INFO] [stderr]   |          ----- variants in this enum
[INFO] [stderr] 6 |     Boolean(bool),
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 7 |     Byte(i8),
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 8 |     Char(u16),
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 9 |     Short(i16),
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_reference` is never used
[INFO] [stderr]   --> src/memory/value.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Value {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 61 |     pub fn is_reference(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Annotation` is never constructed
[INFO] [stderr]   --> src/annotations.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct Annotation {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ElementValue` is never used
[INFO] [stderr]   --> src/annotations.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum ElementValue {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_attribute` is never used
[INFO] [stderr]   --> src/annotations.rs:31:4
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn find_attribute<'a>(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_annotations` is never used
[INFO] [stderr]   --> src/annotations.rs:42:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn parse_annotations(class: &ClassFile, attr: &AttributeInfo) -> Vec<Annotation> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_element_value` is never used
[INFO] [stderr]   --> src/annotations.rs:85:4
[INFO] [stderr]    |
[INFO] [stderr] 85 | fn parse_element_value(class: &ClassFile, data: &[u8], pos: &mut usize) -> ElementValue {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_annotations` is never used
[INFO] [stderr]    --> src/annotations.rs:125:8
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub fn get_annotations(class: &ClassFile, attrs: &[AttributeInfo]) -> Vec<Annotation> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_signature` is never used
[INFO] [stderr]    --> src/annotations.rs:133:8
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub fn get_signature(class: &ClassFile, attrs: &[AttributeInfo]) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_class_annotations` and `get_class_signature` are never used
[INFO] [stderr]    --> src/annotations.rs:145:12
[INFO] [stderr]     |
[INFO] [stderr] 143 | impl ClassFile {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] 144 |     /// Get class-level annotations
[INFO] [stderr] 145 |     pub fn get_class_annotations(&self) -> Vec<Annotation> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn get_class_signature(&self) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_annotations` and `get_signature_attr` are never used
[INFO] [stderr]    --> src/annotations.rs:157:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl MethodInfo {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] 156 |     /// Get method-level annotations
[INFO] [stderr] 157 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |     pub fn get_signature_attr(&self, class: &ClassFile) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_annotations` is never used
[INFO] [stderr]    --> src/annotations.rs:169:12
[INFO] [stderr]     |
[INFO] [stderr] 167 | impl FieldInfo {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] 168 |     /// Get field-level annotations
[INFO] [stderr] 169 |     pub fn get_annotations(&self, class: &ClassFile) -> Vec<Annotation> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `string_cache`, `exception_handlers`, `current_exception`, and `reflection_api` are never read
[INFO] [stderr]    --> src/interpreter/mod.rs:108:16
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct Interpreter {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub(crate) string_cache: HashMap<u32, String>,
[INFO] [stderr]     |                ^^^^^^^^^^^^
[INFO] [stderr] 109 |     pub(crate) exception_handlers: Vec<ExceptionHandler>,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 110 |     pub(crate) current_exception: Option<RuntimeError>,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 |     pub(crate) reflection_api: ReflectionApi,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/interpreter/mod.rs:167:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl Interpreter {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 167 |     pub fn with_classpath(classpath: Vec<PathBuf>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 514 |     pub fn memory_mut(&mut self) -> &mut Memory {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 520 |     pub fn new_instance(&mut self, class_name: &str, args: &[Value]) -> Result<Value, JvmError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 544 |     pub fn get_field_value(&self, obj: &Value, field_name: &str) -> Result<Value, JvmError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 559 |     pub fn set_field_value(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 577 |     pub fn get_object_class(&self, obj: &Value) -> Result<String, JvmError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 596 |     pub fn invoke_method(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 650 |     fn build_descriptor_for_args(args: &[Value]) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 667 |     fn invoke_constructor_for_reflection(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 683 |     pub fn get_loaded_class_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 688 |     pub fn get_memory_usage(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 693 |     pub fn get_gc_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 699 |     pub fn is_jit_enabled(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 714 |     pub fn jit_manager(&mut self) -> Option<&mut JitManager> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 719 |     pub fn is_class_loaded(&self, name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 724 |     pub fn load_class<P: AsRef<Path>>(&mut self, path: P) -> Result<(), JvmError> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 741 |     pub fn get_class(&self, name: &str) -> Option<&ClassFile> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 746 |     pub fn get_reflection_api(&self) -> &ReflectionApi {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 751 |     pub fn get_class_reflection(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 824 |     pub fn array_set_value(&mut self, array_ref: u32, index: i32, value: Value) -> Result<(), RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 830 |     pub fn array_set_int(&mut self, array_ref: u32, index: i32, value: i32) -> Result<(), RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 836 |     pub fn array_get_value(&mut self, array_ref: u32, index: i32) -> Result<Value, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 841 |     pub fn array_get_int(&mut self, array_ref: u32, index: i32) -> Result<i32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 849 |     pub fn array_get_length(&mut self, array_ref: u32) -> Result<i32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 854 |     pub fn new_array_object(&mut self, component_type: &str, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 863 |     pub fn new_array_bool(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 872 |     pub fn new_array_byte(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 881 |     pub fn new_array_char(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 890 |     pub fn new_array_short(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 899 |     pub fn new_array_long(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 908 |     pub fn new_array_float(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 917 |     pub fn new_array_double(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 926 |     pub fn new_array_int(&mut self, length: i32) -> Result<u32, RuntimeError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `BytecodeExecutor` is never used
[INFO] [stderr]   --> src/interpreter/traits.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub trait BytecodeExecutor {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MemoryManager` is never used
[INFO] [stderr]   --> src/interpreter/traits.rs:43:11
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub trait MemoryManager {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ClassManager` is never used
[INFO] [stderr]   --> src/interpreter/traits.rs:61:11
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub trait ClassManager {
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `JitManagerProvider` is never used
[INFO] [stderr]   --> src/interpreter/traits.rs:79:11
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub trait JitManagerProvider {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `DebugProvider` is never used
[INFO] [stderr]   --> src/interpreter/traits.rs:94:11
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub trait DebugProvider {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `NativeMethodHandler` is never used
[INFO] [stderr]    --> src/interpreter/traits.rs:112:11
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub trait NativeMethodHandler {
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `RuntimeConfig` is never used
[INFO] [stderr]    --> src/interpreter/traits.rs:136:11
[INFO] [stderr]     |
[INFO] [stderr] 136 | pub trait RuntimeConfig {
[INFO] [stderr]     |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `JvmInterpreter` is never used
[INFO] [stderr]    --> src/interpreter/traits.rs:155:11
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub trait JvmInterpreter: 
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DefaultInterpreterDelegate` is never constructed
[INFO] [stderr]    --> src/interpreter/traits.rs:188:12
[INFO] [stderr]     |
[INFO] [stderr] 188 | pub struct DefaultInterpreterDelegate {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JNI_VERSION_1_1` is never used
[INFO] [stderr]  --> src/native.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const JNI_VERSION_1_1: i32 = 0x00010001;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JNI_VERSION_1_2` is never used
[INFO] [stderr]  --> src/native.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const JNI_VERSION_1_2: i32 = 0x00010002;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JNI_VERSION_1_4` is never used
[INFO] [stderr]  --> src/native.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const JNI_VERSION_1_4: i32 = 0x00010004;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JNI_VERSION_1_6` is never used
[INFO] [stderr]   --> src/native.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const JNI_VERSION_1_6: i32 = 0x00010006;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JNI_VERSION_1_8` is never used
[INFO] [stderr]   --> src/native.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const JNI_VERSION_1_8: i32 = 0x00010008;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JNINativeInterface_` is never constructed
[INFO] [stderr]   --> src/native.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct JNINativeInterface_ {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `JNINativeMethod` is never used
[INFO] [stderr]   --> src/native.rs:30:10
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub type JNINativeMethod = unsafe extern "C" fn(*mut c_void, *mut c_void, *mut *mut jvalue);
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: union `jvalue` is never used
[INFO] [stderr]   --> src/native.rs:34:11
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub union jvalue {
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]   --> src/native.rs:55:8
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub trait NativeMethod: Send + Sync {
[INFO] [stderr]    |           ------------ method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 55 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]   --> src/native.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub struct SimpleNativeMethod {
[INFO] [stderr]    |            ------------------ field in this struct
[INFO] [stderr] 60 |     name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_native` is never used
[INFO] [stderr]    --> src/native.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr]  99 | impl NativeRegistry {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn is_native(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `value_to_jvalue` is never used
[INFO] [stderr]    --> src/native.rs:144:8
[INFO] [stderr]     |
[INFO] [stderr] 144 | pub fn value_to_jvalue(value: Value) -> jvalue {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `jvalue_to_value` is never used
[INFO] [stderr]    --> src/native.rs:170:8
[INFO] [stderr]     |
[INFO] [stderr] 170 | pub fn jvalue_to_value(jvalue: jvalue) -> Value {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FieldReflection` is never constructed
[INFO] [stderr]   --> src/reflection.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct FieldReflection {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MethodReflection` is never constructed
[INFO] [stderr]   --> src/reflection.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct MethodReflection {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConstructorReflection` is never constructed
[INFO] [stderr]   --> src/reflection.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct ConstructorReflection {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClassReflection` is never constructed
[INFO] [stderr]   --> src/reflection.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub struct ClassReflection {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `descriptor_to_type` is never used
[INFO] [stderr]   --> src/reflection.rs:81:4
[INFO] [stderr]    |
[INFO] [stderr] 81 | fn descriptor_to_type(descriptor: &str) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `class_to_reflection` is never used
[INFO] [stderr]    --> src/reflection.rs:114:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub fn class_to_reflection(class: &ClassFile) -> ClassReflection {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_method_params` is never used
[INFO] [stderr]    --> src/reflection.rs:178:4
[INFO] [stderr]     |
[INFO] [stderr] 178 | fn parse_method_params(descriptor: &str) -> Vec<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_return_type` is never used
[INFO] [stderr]    --> src/reflection.rs:251:4
[INFO] [stderr]     |
[INFO] [stderr] 251 | fn parse_return_type(descriptor: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/reflection.rs:271:12
[INFO] [stderr]     |
[INFO] [stderr] 262 | impl ReflectionApi {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 271 |     pub fn get_class(&self, class_name: &str) -> Option<ClassReflection> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 284 |     pub fn get_fields(&self, class_name: &str) -> Vec<FieldReflection> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     pub fn get_methods(&self, class_name: &str) -> Vec<MethodReflection> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 316 |     pub fn get_constructors(&self, class_name: &str) -> Vec<ConstructorReflection> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 332 |     pub fn get_super_class(&self, class_name: &str) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 348 |     pub fn get_interfaces(&self, class_name: &str) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 364 |     pub fn get_class_modifiers(&self, class_name: &str) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 380 |     pub fn is_interface(&self, class_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 386 |     pub fn is_abstract(&self, class_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 392 |     pub fn is_public(&self, class_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 398 |     pub fn is_field_public(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 409 |     pub fn is_field_static(&self, class_name: &str, field_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 420 |     pub fn is_method_public(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 431 |     pub fn is_method_static(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 442 |     pub fn new_instance(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 454 |     pub fn get_field_value(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 466 |     pub fn set_field_value(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 479 |     pub fn invoke_method(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 492 |     pub fn get_object_class(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PUBLIC` is never used
[INFO] [stderr]    --> src/reflection.rs:503:15
[INFO] [stderr]     |
[INFO] [stderr] 503 |     pub const PUBLIC: u16 = 0x0001;
[INFO] [stderr]     |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PRIVATE` is never used
[INFO] [stderr]    --> src/reflection.rs:504:15
[INFO] [stderr]     |
[INFO] [stderr] 504 |     pub const PRIVATE: u16 = 0x0002;
[INFO] [stderr]     |               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROTECTED` is never used
[INFO] [stderr]    --> src/reflection.rs:505:15
[INFO] [stderr]     |
[INFO] [stderr] 505 |     pub const PROTECTED: u16 = 0x0004;
[INFO] [stderr]     |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STATIC` is never used
[INFO] [stderr]    --> src/reflection.rs:506:15
[INFO] [stderr]     |
[INFO] [stderr] 506 |     pub const STATIC: u16 = 0x0008;
[INFO] [stderr]     |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FINAL` is never used
[INFO] [stderr]    --> src/reflection.rs:507:15
[INFO] [stderr]     |
[INFO] [stderr] 507 |     pub const FINAL: u16 = 0x0010;
[INFO] [stderr]     |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SYNCHRONIZED` is never used
[INFO] [stderr]    --> src/reflection.rs:508:15
[INFO] [stderr]     |
[INFO] [stderr] 508 |     pub const SYNCHRONIZED: u16 = 0x0020;
[INFO] [stderr]     |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VOLATILE` is never used
[INFO] [stderr]    --> src/reflection.rs:509:15
[INFO] [stderr]     |
[INFO] [stderr] 509 |     pub const VOLATILE: u16 = 0x0040;
[INFO] [stderr]     |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TRANSIENT` is never used
[INFO] [stderr]    --> src/reflection.rs:510:15
[INFO] [stderr]     |
[INFO] [stderr] 510 |     pub const TRANSIENT: u16 = 0x0080;
[INFO] [stderr]     |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NATIVE` is never used
[INFO] [stderr]    --> src/reflection.rs:511:15
[INFO] [stderr]     |
[INFO] [stderr] 511 |     pub const NATIVE: u16 = 0x0100;
[INFO] [stderr]     |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `INTERFACE` is never used
[INFO] [stderr]    --> src/reflection.rs:512:15
[INFO] [stderr]     |
[INFO] [stderr] 512 |     pub const INTERFACE: u16 = 0x0200;
[INFO] [stderr]     |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ABSTRACT` is never used
[INFO] [stderr]    --> src/reflection.rs:513:15
[INFO] [stderr]     |
[INFO] [stderr] 513 |     pub const ABSTRACT: u16 = 0x0400;
[INFO] [stderr]     |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STRICTFP` is never used
[INFO] [stderr]    --> src/reflection.rs:514:15
[INFO] [stderr]     |
[INFO] [stderr] 514 |     pub const STRICTFP: u16 = 0x0800;
[INFO] [stderr]     |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAGIC` is never used
[INFO] [stderr]  --> src/serialization.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const MAGIC: &[u8; 4] = b"JVRS";
[INFO] [stderr]   |       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VERSION` is never used
[INFO] [stderr]   --> src/serialization.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const VERSION: u8 = 1;
[INFO] [stderr]    |       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_NULL` is never used
[INFO] [stderr]   --> src/serialization.rs:13:7
[INFO] [stderr]    |
[INFO] [stderr] 13 | const TAG_NULL: u8 = 0;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_INT` is never used
[INFO] [stderr]   --> src/serialization.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const TAG_INT: u8 = 1;
[INFO] [stderr]    |       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_LONG` is never used
[INFO] [stderr]   --> src/serialization.rs:15:7
[INFO] [stderr]    |
[INFO] [stderr] 15 | const TAG_LONG: u8 = 2;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_FLOAT` is never used
[INFO] [stderr]   --> src/serialization.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const TAG_FLOAT: u8 = 3;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_DOUBLE` is never used
[INFO] [stderr]   --> src/serialization.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const TAG_DOUBLE: u8 = 4;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_REFERENCE` is never used
[INFO] [stderr]   --> src/serialization.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const TAG_REFERENCE: u8 = 5;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_ARRAY_REF` is never used
[INFO] [stderr]   --> src/serialization.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const TAG_ARRAY_REF: u8 = 6;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_BOOLEAN` is never used
[INFO] [stderr]   --> src/serialization.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const TAG_BOOLEAN: u8 = 7;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_BYTE` is never used
[INFO] [stderr]   --> src/serialization.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const TAG_BYTE: u8 = 8;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_CHAR` is never used
[INFO] [stderr]   --> src/serialization.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const TAG_CHAR: u8 = 9;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAG_SHORT` is never used
[INFO] [stderr]   --> src/serialization.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const TAG_SHORT: u8 = 10;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_serializable` is never used
[INFO] [stderr]   --> src/serialization.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn is_serializable(_class_name: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_serializable_class` is never used
[INFO] [stderr]   --> src/serialization.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn is_serializable_class(class: &ClassFile) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_len_prefixed_string` is never used
[INFO] [stderr]   --> src/serialization.rs:47:4
[INFO] [stderr]    |
[INFO] [stderr] 47 | fn write_len_prefixed_string<W: Write>(w: &mut W, s: &str) -> std::io::Result<()> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_len_prefixed_string` is never used
[INFO] [stderr]   --> src/serialization.rs:54:4
[INFO] [stderr]    |
[INFO] [stderr] 54 | fn read_len_prefixed_string<R: Read>(r: &mut R) -> std::io::Result<String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_value` is never used
[INFO] [stderr]   --> src/serialization.rs:63:4
[INFO] [stderr]    |
[INFO] [stderr] 63 | fn write_value<W: Write>(w: &mut W, v: &Value) -> std::io::Result<()> {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_value` is never used
[INFO] [stderr]    --> src/serialization.rs:116:4
[INFO] [stderr]     |
[INFO] [stderr] 116 | fn read_value<R: Read>(r: &mut R) -> std::io::Result<Value> {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `serialize_object` is never used
[INFO] [stderr]    --> src/serialization.rs:179:8
[INFO] [stderr]     |
[INFO] [stderr] 179 | pub fn serialize_object(obj: &HeapObject) -> Result<Vec<u8>, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `deserialize_object` is never used
[INFO] [stderr]    --> src/serialization.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 | pub fn deserialize_object(data: &[u8], _class_name: &str) -> Result<HeapObject, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `serialize_value` is never used
[INFO] [stderr]    --> src/serialization.rs:239:8
[INFO] [stderr]     |
[INFO] [stderr] 239 | pub fn serialize_value(v: &Value) -> Result<Vec<u8>, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `deserialize_value` is never used
[INFO] [stderr]    --> src/serialization.rs:246:8
[INFO] [stderr]     |
[INFO] [stderr] 246 | pub fn deserialize_value(data: &[u8]) -> Result<Value, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `export_html_fragment` is never used
[INFO] [stderr]   --> src/visualization.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn export_html_fragment(frames: &[StackFrame]) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `html_escape` is never used
[INFO] [stderr]   --> src/visualization.rs:62:4
[INFO] [stderr]    |
[INFO] [stderr] 62 | fn html_escape(s: &str) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `instruction_count`, `total_time_ns`, and `last_compiled` are never read
[INFO] [stderr]   --> src/jit.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct MethodProfile {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 67 |     pub instruction_count: u64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 68 |     /// Time spent in this method (nanoseconds)
[INFO] [stderr] 69 |     pub total_time_ns: u64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |     pub last_compiled: Option<Instant>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MethodProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `record_instructions` and `record_time` are never used
[INFO] [stderr]   --> src/jit.rs:91:12
[INFO] [stderr]    |
[INFO] [stderr] 76 | impl MethodProfile {
[INFO] [stderr]    | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 91 |     pub fn record_instructions(&mut self, count: u64) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn record_time(&mut self, time_ns: u64) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_method_size` is never read
[INFO] [stderr]    --> src/jit.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct TieredCompilationConfig {
[INFO] [stderr]     |            ----------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 122 |     pub max_method_size: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `TieredCompilationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IrGenerationError` is never constructed
[INFO] [stderr]    --> src/jit.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub enum JitError {
[INFO] [stderr]     |          -------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 149 |     IrGenerationError(String),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `JitError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `level` are never read
[INFO] [stderr]    --> src/jit.rs:175:9
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub struct CompiledCode {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 174 |     /// Function name
[INFO] [stderr] 175 |     pub name: String,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 179 |     pub level: CompilationLevel,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CompiledCode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `config` and `set_config` are never used
[INFO] [stderr]    --> src/jit.rs:357:12
[INFO] [stderr]     |
[INFO] [stderr] 206 | impl CraneliftJitCompiler {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 357 |     pub fn config(&self) -> &TieredCompilationConfig {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 362 |     pub fn set_config(&mut self, config: TieredCompilationConfig) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `link_executable` is never used
[INFO] [stderr]    --> src/jit.rs:392:12
[INFO] [stderr]     |
[INFO] [stderr] 380 | impl AotCompiler {
[INFO] [stderr]     | ---------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 392 |     pub fn link_executable(objects: &[PathBuf], output_path: &Path) -> JitResult<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_or_compile_method` and `is_compiled` are never used
[INFO] [stderr]    --> src/jit.rs:616:12
[INFO] [stderr]     |
[INFO] [stderr] 596 | impl JitManager {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 616 |     pub fn get_or_compile_method(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 658 |     pub fn is_compiled(&self, class_name: &str, method_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LlvmIrGenerator` is never constructed
[INFO] [stderr]    --> src/jit.rs:573:16
[INFO] [stderr]     |
[INFO] [stderr] 573 |     pub struct LlvmIrGenerator {}
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/jit.rs:576:16
[INFO] [stderr]     |
[INFO] [stderr] 575 |     impl LlvmIrGenerator {
[INFO] [stderr]     |     -------------------- associated function in this implementation
[INFO] [stderr] 576 |         pub fn new(_module_name: &str) -> Result<Self, String> {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `trace_classes`, `trace_methods`, and `max_stack_frames` are never read
[INFO] [stderr]   --> src/debug.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub struct DebugConfig {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub trace_classes: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 14 |     /// Enable method entry/exit logging
[INFO] [stderr] 15 |     pub trace_methods: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 16 |     /// Maximum number of stack frames to log (None for all)
[INFO] [stderr] 17 |     pub max_stack_frames: Option<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DebugConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/debug.rs:52:12
[INFO] [stderr]     |
[INFO] [stderr]  42 | impl JvmDebugger {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  52 |     pub fn log_method_entry(&self, class_name: &str, method_name: &str, method_descriptor: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  62 |     pub fn log_method_exit(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub fn log_class_loaded(&self, class_name: &str, source: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn log_memory_access(&self, address: u32, operation: &str, value: Option<&Value>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |     pub fn log_exception(&self, exception: &str, handler_pc: Option<usize>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn log_gc(&self, freed_objects: usize, freed_bytes: usize) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 387 |     pub fn instruction_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 392 |     pub fn reset_instruction_count(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rng_seed`, `fixed_timestamp_ns`, and `max_pause_ns` are never read
[INFO] [stderr]   --> src/deterministic.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct DeterministicConfig {
[INFO] [stderr]    |            ------------------- fields in this struct
[INFO] [stderr]  9 |     /// Fixed seed for any RNG (0 = use system time when disabled)
[INFO] [stderr] 10 |     pub rng_seed: u64,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 11 |     /// Use fixed "epoch" timestamp instead of actual time
[INFO] [stderr] 12 |     pub fixed_timestamp_ns: Option<u64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     /// Target max pause time in ns (for real-time / HFT; advisory)
[INFO] [stderr] 14 |     pub max_pause_ns: Option<u64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DeterministicConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `blockchain`, `realtime`, and `hft` are never used
[INFO] [stderr]   --> src/deterministic.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl DeterministicConfig {
[INFO] [stderr]    | ------------------------ associated functions in this implementation
[INFO] [stderr] 28 |     /// Preset for blockchain / smart contract execution
[INFO] [stderr] 29 |     pub fn blockchain() -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn realtime(max_pause_ns: u64) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn hft() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeterministicMode` is never constructed
[INFO] [stderr]   --> src/deterministic.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct DeterministicMode {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `enabled`, `set_enabled`, `rng_seed`, and `timestamp_ns` are never used
[INFO] [stderr]   --> src/deterministic.rs:59:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | impl DeterministicMode {
[INFO] [stderr]    | ---------------------- associated items in this implementation
[INFO] [stderr] 59 |     pub fn new(config: DeterministicConfig) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn enabled(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 75 |     pub fn rng_seed(&self) -> u64 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 |     pub fn timestamp_ns(&self) -> u64 {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_max_samples`, `set_enabled`, `method_counts`, `method_time_ns`, and `hotspots` are never used
[INFO] [stderr]    --> src/profiler.rs:45:12
[INFO] [stderr]     |
[INFO] [stderr]  33 | impl Profiler {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  45 |     pub fn with_max_samples(max_samples: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  51 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn method_counts(&self) -> HashMap<String, u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub fn method_time_ns(&self) -> HashMap<String, u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub fn hotspots(&self, top_n: usize) -> Vec<(String, u64, u64)> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_capacity`, `is_enabled`, and `clear` are never used
[INFO] [stderr]    --> src/trace.rs:36:12
[INFO] [stderr]     |
[INFO] [stderr]  27 | impl TraceRecorder {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  36 |     pub fn with_capacity(max_steps: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  48 |     pub fn is_enabled(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Proxy` is never constructed
[INFO] [stderr]  --> src/aop.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct Proxy {
[INFO] [stderr]   |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AdviceKind` is never used
[INFO] [stderr]   --> src/aop.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub enum AdviceKind {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Pointcut` is never constructed
[INFO] [stderr]   --> src/aop.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct Pointcut {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AopRegistry` is never constructed
[INFO] [stderr]   --> src/aop.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct AopRegistry {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_advice`, and `matches` are never used
[INFO] [stderr]   --> src/aop.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl AopRegistry {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 35 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn add_advice(&mut self, pointcut: Pointcut, kind: AdviceKind) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn matches(&self, class_name: &str, method_name: &str) -> Option<AdviceKind> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_proxy` is never used
[INFO] [stderr]   --> src/aop.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub fn create_proxy(target_class: String, target_ref: u32, interceptor: Option<String>) -> Proxy {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `K8sOperatorConfig` is never constructed
[INFO] [stderr]  --> src/cloud.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct K8sOperatorConfig {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DistributedObjectRef` is never constructed
[INFO] [stderr]   --> src/cloud.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct DistributedObjectRef {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `JavaExtension` is never used
[INFO] [stderr]   --> src/extensions.rs:35:11
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub trait JavaExtension: Send + Sync {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `NativeCallback` is never used
[INFO] [stderr]   --> src/extensions.rs:51:6
[INFO] [stderr]    |
[INFO] [stderr] 51 | type NativeCallback = Arc<dyn Fn(&[Value]) -> Result<Value, String> + Send + Sync>;
[INFO] [stderr]    |      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExtensionRegistry` is never constructed
[INFO] [stderr]   --> src/extensions.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct ExtensionRegistry {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `register_native`, `has_native`, `invoke_native`, `load`, and `loaded_extensions` are never used
[INFO] [stderr]    --> src/extensions.rs:60:12
[INFO] [stderr]     |
[INFO] [stderr]  59 | impl ExtensionRegistry {
[INFO] [stderr]     | ---------------------- associated items in this implementation
[INFO] [stderr]  60 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  68 |     pub fn register_native(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  81 |     pub fn has_native(&self, key: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub fn invoke_native(&self, key: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn load(&self, ext: &dyn JavaExtension) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn loaded_extensions(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `GLOBAL_REGISTRY` is never used
[INFO] [stderr]    --> src/extensions.rs:148:8
[INFO] [stderr]     |
[INFO] [stderr] 148 | static GLOBAL_REGISTRY: OnceLock<RwLock<ExtensionRegistry>> = OnceLock::new();
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `global` is never used
[INFO] [stderr]    --> src/extensions.rs:152:12
[INFO] [stderr]     |
[INFO] [stderr] 150 | impl ExtensionRegistry {
[INFO] [stderr]     | ---------------------- associated function in this implementation
[INFO] [stderr] 151 |     /// Global extension registry (used by Interpreter when interop is enabled)
[INFO] [stderr] 152 |     pub fn global() -> &'static RwLock<ExtensionRegistry> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HotReloadManager` is never constructed
[INFO] [stderr]   --> src/hot_reload.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct HotReloadManager {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `set_enabled`, `register_reloadable`, `class_file_changed`, `record_class_loaded`, and `replace_method` are never used
[INFO] [stderr]   --> src/hot_reload.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl HotReloadManager {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 18 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn register_reloadable(&mut self, class: &str, _method: &str) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn class_file_changed(&self, path: &Path) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn record_class_loaded(&mut self, class_name: &str, path: &Path) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     pub fn replace_method(
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `stack_overflow_check` is never read
[INFO] [stderr]   --> src/security.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct SecurityConfig {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 14 |     pub stack_overflow_check: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SecurityConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `check_stack_overflow`, `violation_count`, and `config` are never used
[INFO] [stderr]    --> src/security.rs:77:12
[INFO] [stderr]     |
[INFO] [stderr]  34 | impl Sanitizer {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  77 |     pub fn check_stack_overflow(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn violation_count(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn config(&self) -> &SecurityConfig {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `jvmrs` (bin "jvmrs") generated 191 warnings (13 duplicates) (run `cargo fix --bin "jvmrs" -p jvmrs` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `ClassFile`
[INFO] [stderr]    --> src/inline_cache.rs:245:29
[INFO] [stderr]     |
[INFO] [stderr] 245 |     use crate::class_file::{ClassFile, MethodInfo};
[INFO] [stderr]     |                             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ArenaAllocator`, `MemoryAllocator`, `MemoryStats`, `MemoryType`, `PrimitiveArrayType`, and `TlabAllocator`
[INFO] [stderr]   --> src/memory/mod.rs:68:28
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub use memory_allocator::{MemoryAllocator, ArenaAllocator, TlabAllocator, MemoryType, PrimitiveArrayType, MemoryStats};
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FieldInfo`
[INFO] [stderr]    --> src/aot_compiler.rs:618:74
[INFO] [stderr]     |
[INFO] [stderr] 618 |     use crate::class_file::{AttributeInfo, ClassFile, ConstantPoolEntry, FieldInfo, MethodInfo};
[INFO] [stderr]     |                                                                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DebugConfig` and `JvmDebugger`
[INFO] [stderr]  --> src/tests.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 |     use crate::debug::{DebugConfig, JvmDebugger};
[INFO] [stderr]   |                        ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `to_class_loading_error`, `to_parse_error`, and `to_runtime_error`
[INFO] [stderr]   --> src/tests.rs:10:38
[INFO] [stderr]    |
[INFO] [stderr] 10 |         ClassLoadingError, JvmError, to_class_loading_error, to_parse_error, to_runtime_error,
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HeapArray`, `Monitor`, and `StackFrame`
[INFO] [stderr]   --> src/tests.rs:12:31
[INFO] [stderr]    |
[INFO] [stderr] 12 |     use crate::memory::{Heap, HeapArray, Monitor, StackFrame, Value};
[INFO] [stderr]    |                               ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]    --> src/inline_cache.rs:247:27
[INFO] [stderr]     |
[INFO] [stderr] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stderr]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `desc`
[INFO] [stderr]    --> src/inline_cache.rs:247:39
[INFO] [stderr]     |
[INFO] [stderr] 247 |     fn create_test_method(name: &str, desc: &str) -> MethodInfo {
[INFO] [stderr]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_desc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `class`
[INFO] [stderr]    --> src/interpreter/traits.rs:204:9
[INFO] [stderr]     |
[INFO] [stderr] 204 |         class: &ClassFile,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/interpreter/traits.rs:270:56
[INFO] [stderr]     |
[INFO] [stderr] 270 |         fn test_executor<T: BytecodeExecutor + ?Sized>(t: &mut T) {}
[INFO] [stderr]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/interpreter/traits.rs:271:59
[INFO] [stderr]     |
[INFO] [stderr] 271 |         fn test_memory_manager<T: MemoryManager + ?Sized>(t: &mut T) {}
[INFO] [stderr]     |                                                           ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/interpreter/traits.rs:272:57
[INFO] [stderr]     |
[INFO] [stderr] 272 |         fn test_class_manager<T: ClassManager + ?Sized>(t: &mut T) {}
[INFO] [stderr]     |                                                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:139:10
[INFO] [stderr]     |
[INFO] [stderr] 139 |     let (mut frame, res) =
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:152:10
[INFO] [stderr]     |
[INFO] [stderr] 152 |     let (mut frame, res) = run_instruction(
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:894:10
[INFO] [stderr]     |
[INFO] [stderr] 894 |     let (mut frame, res) = run_instruction(
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:904:10
[INFO] [stderr]     |
[INFO] [stderr] 904 |     let (mut frame, res) =
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:910:10
[INFO] [stderr]     |
[INFO] [stderr] 910 |     let (mut frame, res) = run_instruction(
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:924:10
[INFO] [stderr]     |
[INFO] [stderr] 924 |     let (mut frame, res) = run_instruction(0xa7, &[0x00, 0x0a], vec![], vec![]);
[INFO] [stderr]     |          ----^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/interpreter/tests.rs:973:10
[WARN] too many lines in the log, truncating it
