[INFO] cloning repository https://github.com/iximeow/zvm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iximeow/zvm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fzvm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fzvm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2b2175d771afb478f30b176118d6680b1c695eb8
[INFO] building iximeow/zvm against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fzvm" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iximeow/zvm
[INFO] finished tweaking git repo https://github.com/iximeow/zvm
[INFO] tweaked toml for git repo https://github.com/iximeow/zvm written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iximeow/zvm on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iximeow/zvm 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 388e074ba1e0fa250f79ab50043ee0b1026b12585a5dd7c89c0521d4cee6564b
[INFO] running `Command { std: "docker" "start" "-a" "388e074ba1e0fa250f79ab50043ee0b1026b12585a5dd7c89c0521d4cee6564b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "388e074ba1e0fa250f79ab50043ee0b1026b12585a5dd7c89c0521d4cee6564b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "388e074ba1e0fa250f79ab50043ee0b1026b12585a5dd7c89c0521d4cee6564b", kill_on_drop: false }`
[INFO] [stdout] 388e074ba1e0fa250f79ab50043ee0b1026b12585a5dd7c89c0521d4cee6564b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c671c9761182b780e9c136244e0627c11acf757bb543a1e6a346711c72c83486
[INFO] running `Command { std: "docker" "start" "-a" "c671c9761182b780e9c136244e0627c11acf757bb543a1e6a346711c72c83486", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling smallvec v1.9.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.42
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling cranelift-isle v0.86.1
[INFO] [stderr]    Compiling unicode-ident v1.0.2
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.86.1
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling target-lexicon v0.12.4
[INFO] [stderr]    Compiling serde_derive v1.0.140
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.86.1
[INFO] [stderr]    Compiling serde v1.0.140
[INFO] [stderr]    Compiling slice-group-by v0.3.0
[INFO] [stderr]    Compiling cranelift-entity v0.86.1
[INFO] [stderr]    Compiling yaxpeax-x86 v1.1.4
[INFO] [stderr]    Compiling cranelift-bforest v0.86.1
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling mio v0.7.14
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling regalloc2 v0.3.1
[INFO] [stderr]    Compiling gimli v0.26.2
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling signal-hook v0.1.17
[INFO] [stderr]    Compiling crossterm v0.19.0
[INFO] [stderr]    Compiling cranelift-codegen v0.86.1
[INFO] [stderr]    Compiling yaxpeax-arch v0.2.7
[INFO] [stderr]    Compiling cranelift-frontend v0.86.1
[INFO] [stderr]    Compiling zvm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[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: `attribute::Attribute`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:7:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::class_file::unvalidated::{attribute::Attribute, AttributeInfo, MethodAccessFlags, MethodInfo};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueRef`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:9:77
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::virtual_machine::{ClassFile, ClassFileRef, UnvalidatedClassFile, ValueRef};
[INFO] [stdout]   |                                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NativeObject`
[INFO] [stdout]   --> src/virtual_machine/jvm/synthetic.rs:10:73
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::virtual_machine::{MethodBody, JvmArray, JvmObject, JvmValue, NativeObject};
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Entry`
[INFO] [stdout]     --> src/virtual_machine.rs:3575:17
[INFO] [stdout]      |
[INFO] [stdout] 3575 |             use std::collections::hash_map::Entry;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SimpleJvmValue`
[INFO] [stdout]  --> src/compiler/mod.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::{SimpleJvmValue, VirtualMachine, VMState};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]     --> src/compiler/mod.rs:1113:5
[INFO] [stdout]      |
[INFO] [stdout] 1113 | use std::cell::RefCell;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]     --> src/compiler/mod.rs:1151:5
[INFO] [stdout]      |
[INFO] [stdout] 1151 | use std::borrow::Borrow;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1154:9
[INFO] [stdout]      |
[INFO] [stdout] 1153 |           let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |                             ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 1154 | /         match &data[..] {
[INFO] [stdout] 1155 | |             b"file.encoding" => {
[INFO] [stdout] 1156 | |                 ValueImpl::string(vm, "UTF-8")
[INFO] [stdout] ...    |
[INFO] [stdout] 1163 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1168:5
[INFO] [stdout]      |
[INFO] [stdout] 1165 |         panic!("invalid argument for getProperty {:?}", argument);
[INFO] [stdout]      |         --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     state.current_frame_mut().operand_stack.push(property);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1202:9
[INFO] [stdout]      |
[INFO] [stdout] 1199 |               panic!("todo: turn class name array into a real string");
[INFO] [stdout]      |               -------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1202 | /         state.current_frame_mut()
[INFO] [stdout] 1203 | |             .operand_stack
[INFO] [stdout] 1204 | |             .push(ValueImpl::array_with_data(
[INFO] [stdout] 1205 | |                 vm.resolve_class(class_name_string).expect("TODO: need to fish out the right string from `cls`."),
[INFO] [stdout] 1206 | |                 elems.into_boxed_slice(),
[INFO] [stdout] 1207 | |             ));
[INFO] [stdout]      | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine.rs:2950:9
[INFO] [stdout]      |
[INFO] [stdout] 2950 | /         Self {
[INFO] [stdout] 2951 | |             cls: class_file,
[INFO] [stdout] 2952 | |             data: panic!("todo: do something with argument")
[INFO] [stdout]      | |                   ------------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 2953 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]     --> src/virtual_machine.rs:2765:61
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^ ------------------------------- any code following this expression is unreachable
[INFO] [stdout]      |                                                             |
[INFO] [stdout]      |                                                             unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |         bytecode: Option<Vec<u8>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut attributes = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/virtual_machine.rs:365:13
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let frame = self.current_frame();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout_id`
[INFO] [stdout]     --> src/virtual_machine.rs:2765:17
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classfile_ptr`
[INFO] [stdout]     --> src/virtual_machine.rs:2770:17
[INFO] [stdout]      |
[INFO] [stdout] 2770 |             let classfile_ptr = Arc::into_raw(class_file);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classfile_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_file`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:18
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:46
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn extends(mut self, name: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn with_method(mut self, name: &str, sig: &str, native: Option<NativeJvmFn<ValueImpl>>) -> Self {
[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/virtual_machine/jvm/synthetic.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut bytecode_methods = self.bytecode_methods;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2931:24
[INFO] [stdout]      |
[INFO] [stdout] 2931 |     fn get_elem(&self, idx: usize) -> Option<&SimpleJvmValue> {
[INFO] [stdout]      |                        ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2934:28
[INFO] [stdout]      |
[INFO] [stdout] 2934 |     fn get_elem_mut(&self, idx: usize) -> Option<&mut SimpleJvmValue> {
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2949:46
[INFO] [stdout]      |
[INFO] [stdout] 2949 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[SimpleJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:224:23
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn with_field(mut self, name: &str, sig: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut cls = ClassFile::validate(&self.cls).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:427:24
[INFO] [stdout]     |
[INFO] [stdout] 427 |     } else if let Some(obj) = argument.as_object() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3104:14
[INFO] [stdout]      |
[INFO] [stdout] 3104 |     fn float(v: f32) -> Self {
[INFO] [stdout]      |              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3108:15
[INFO] [stdout]      |
[INFO] [stdout] 3108 |     fn double(v: f64) -> Self {
[INFO] [stdout]      |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]     --> src/virtual_machine.rs:3112:13
[INFO] [stdout]      |
[INFO] [stdout] 3112 |     fn null(s: String) -> Self {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:595:71
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn object_equals<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]     |                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/virtual_machine.rs:3272:13
[INFO] [stdout]      |
[INFO] [stdout] 3272 |         let mut obj = Self::ObjectTy::new_inst(class_file);
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1152:9
[INFO] [stdout]      |
[INFO] [stdout] 1152 |     let property = if argument.as_type("java/lang/String").is_some() {
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1153:13
[INFO] [stdout]      |
[INFO] [stdout] 1153 |         let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1145:77
[INFO] [stdout]      |
[INFO] [stdout] 1145 | fn system_get_property<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name_string`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1194:13
[INFO] [stdout]      |
[INFO] [stdout] 1194 |         let class_name_string = {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1172:72
[INFO] [stdout]      |
[INFO] [stdout] 1172 | fn array_newarray<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `managed_alloc_name`
[INFO] [stdout]    --> src/compiler/mod.rs:467:17
[INFO] [stdout]     |
[INFO] [stdout] 467 |             let managed_alloc_name = ExternalName::User { namespace: 0, index: 0 };
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_managed_alloc_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:567:29
[INFO] [stdout]     |
[INFO] [stdout] 567 | ...                   other => { return Err(ir::CompileError::InvalidSignature("managed alloc returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/compiler/mod.rs:571:48
[INFO] [stdout]     |
[INFO] [stdout] 571 |                     ir::Instruction::Dealloc { value } => {
[INFO] [stdout]     |                                                ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/compiler/mod.rs:574:59
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     ir::Instruction::CallImport { result, name, sig, args } => {
[INFO] [stdout]     |                                                           ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/compiler/mod.rs:576:51
[INFO] [stdout]     |
[INFO] [stdout] 576 |                         let returns = if let Some(ret) = sig.1 {
[INFO] [stdout]     |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:616:29
[INFO] [stdout]     |
[INFO] [stdout] 616 | ...                   other => { return Err(ir::CompileError::InvalidSignature("call returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/compiler/mod.rs:1421:10
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     for (i, cls) in extra_classes.iter().enumerate() {
[INFO] [stdout]      |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attributes` is never read
[INFO] [stdout]   --> src/class_file/unvalidated/field.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_stack` is never read
[INFO] [stdout]   --> src/class_file/validated/method.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MethodBody {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |     pub(crate) max_stack: u16,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmValue` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2678:12
[INFO] [stdout]      |
[INFO] [stdout] 2678 | pub struct NativeJvmValue {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmObject` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2697:12
[INFO] [stdout]      |
[INFO] [stdout] 2697 | pub struct NativeJvmObject {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `zvm_layout_id` and `zvm_vtable` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:2705:19
[INFO] [stdout]      |
[INFO] [stdout] 2704 | impl NativeJvmObject {
[INFO] [stdout]      | -------------------- methods in this implementation
[INFO] [stdout] 2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2714 |     extern "C" fn zvm_vtable(&self) -> Arc<ZvmObjectVTable> {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ZvmObjectVTable` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2728:8
[INFO] [stdout]      |
[INFO] [stdout] 2728 | struct ZvmObjectVTable {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmArray` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2817:12
[INFO] [stdout]      |
[INFO] [stdout] 2817 | pub struct NativeJvmArray {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmArrayData` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2845:12
[INFO] [stdout]      |
[INFO] [stdout] 2845 | pub struct NativeJvmArrayData {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cls` and `internal_obj_id` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3329:8
[INFO] [stdout]      |
[INFO] [stdout] 3327 | pub trait JvmArray<ValueTy: JvmValue>: fmt::Debug + Sized + PartialEq + Eq + Hash {
[INFO] [stdout]      |           -------- methods in this trait
[INFO] [stdout] 3328 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[ValueTy]>) -> Self;
[INFO] [stdout] 3329 |     fn cls(&self) -> Arc<ClassFile>;
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 3333 |     fn internal_obj_id(&self) -> u64;
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueRef` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:3338:19
[INFO] [stdout]      |
[INFO] [stdout] 3338 | pub(crate) struct ValueRef<ValueImpl: JvmValue>(ValueImpl);
[INFO] [stdout]      |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `of` is never used
[INFO] [stdout]     --> src/virtual_machine.rs:3341:12
[INFO] [stdout]      |
[INFO] [stdout] 3340 | impl<ValueImpl: JvmValue> ValueRef<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------- associated function in this implementation
[INFO] [stdout] 3341 |     pub fn of(reference: &ValueImpl) -> Self {
[INFO] [stdout]      |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_instance_field`, `get_instance_field`, and `put_instance_field` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3455:8
[INFO] [stdout]      |
[INFO] [stdout] 3442 | impl<ValueImpl: JvmValue> VirtualMachine<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3455 |     fn has_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3487 |     fn get_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3503 |     fn put_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]     --> src/virtual_machine.rs:3778:22
[INFO] [stdout]      |
[INFO] [stdout] 3778 | pub struct Arg { pub ty: ir::ValueType }
[INFO] [stdout]      |            ---       ^^
[INFO] [stdout]      |            |
[INFO] [stdout]      |            field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Arg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionEmitter` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub struct FunctionEmitter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut`, `data`, `link`, and `finalize` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | impl FunctionEmitter {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 318 |     fn data_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn data(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn link(&mut self, relocs: &[cranelift_codegen::MachReloc], rt_info: &dyn RuntimeInfo) -> Result<(), crate::compiler::ir::CompileErro...
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn finalize(self) -> (*mut u8, usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompiledMethod` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct CompiledMethod {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut` and `data` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl CompiledMethod {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 369 |     fn data_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn data(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arguments`, `locals`, `blocks`, and `returns` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:383:5
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub struct ZvmMethod {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 383 |     arguments: Vec<ir::Argument>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 384 |     locals: Vec<ir::Local>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 385 |     blocks: Vec<ir::Block>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 386 |     returns: Option<ir::ValueRef>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ZvmMethod` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RuntimeInfo` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:391:11
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub trait RuntimeInfo: Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `compile` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:416:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl ZvmMethod {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 416 |     pub fn compile(&self, rt_info: &dyn RuntimeInfo) -> Result<CompiledMethod, ir::CompileError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `blocks` and `layouts` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:722:5
[INFO] [stdout]     |
[INFO] [stdout] 720 | struct TranslatorState<'layouts> {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 721 |     current_block: ir::Block,
[INFO] [stdout] 722 |     blocks: Vec<ir::Block>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 728 |     layouts: &'layouts ir::LayoutsInfo,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TranslatorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `desc_to_ir_valuety` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:863:4
[INFO] [stdout]     |
[INFO] [stdout] 863 | fn desc_to_ir_valuety(desc: &str) -> ir::ValueType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytecode2ir` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:871:8
[INFO] [stdout]     |
[INFO] [stdout] 871 | pub fn bytecode2ir(rt_info: &mut dyn RuntimeInfo, method: &MethodBody, sig: (Vec<Arg>, Option<Arg>)) -> Result<ZvmMethod, ir::Translation...
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ZVM` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1115:23
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub(crate) static mut ZVM: Option<&'static mut dyn RuntimeInfo> = None;
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructLayout` is never constructed
[INFO] [stdout]     --> src/compiler/mod.rs:1119:12
[INFO] [stdout]      |
[INFO] [stdout] 1119 | pub struct StructLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `header_size` and `header_align` are never used
[INFO] [stdout]     --> src/compiler/mod.rs:1126:14
[INFO] [stdout]      |
[INFO] [stdout] 1125 | impl StructLayout {
[INFO] [stdout]      | ----------------- associated functions in this implementation
[INFO] [stdout] 1126 |     const fn header_size() -> usize {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1139 |     const fn header_align() -> usize {
[INFO] [stdout]      |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ZvmRuntime` is never constructed
[INFO] [stdout]     --> src/compiler/mod.rs:1146:12
[INFO] [stdout]      |
[INFO] [stdout] 1146 | pub struct ZvmRuntime {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init` and `runtime_alloc_func` are never used
[INFO] [stdout]     --> src/compiler/mod.rs:1154:12
[INFO] [stdout]      |
[INFO] [stdout] 1153 | impl ZvmRuntime {
[INFO] [stdout]      | --------------- associated functions in this implementation
[INFO] [stdout] 1154 |     pub fn init() -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn runtime_alloc_func(layout_id: u64) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jit` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1398:4
[INFO] [stdout]      |
[INFO] [stdout] 1398 | fn jit(args: &[i64], instructions: Vec<validated::Instruction>, signature: &'static str, extra_classes: Vec<Arc<ClassFile>>, rt_info: &mu...
[INFO] [stdout]      |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jitcall` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1471:4
[INFO] [stdout]      |
[INFO] [stdout] 1471 | fn jitcall(args: &[i64], code: fn(i64, i64, i64, i64, i64, i64) -> i64) -> i64 {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub enum Value {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Const` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub enum Const {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Byte` and `Short` are never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub enum ValueType {
[INFO] [stdout]    |              --------- variants in this enum
[INFO] [stdout] 45 |         Byte,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 46 |         Short,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `size` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     impl ValueType {
[INFO] [stdout]    |     -------------- method in this implementation
[INFO] [stdout] 55 |         fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Const` is never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub enum ValuePool {
[INFO] [stdout]    |              --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |         Const,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValuePool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `constant` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl ValueRef {
[INFO] [stdout]     |     ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn constant(id: usize) -> Self {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionRef` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     struct FunctionRef {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `result`, `source`, and `id` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:126:19
[INFO] [stdout]     |
[INFO] [stdout] 126 |         LoadArg { result: ValueRef, source: ValueRef, id: usize },
[INFO] [stdout]     |         -------   ^^^^^^            ^^^^^^            ^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` 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 variants are never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub enum Instruction {
[INFO] [stdout]     |              ----------- variants in this enum
[INFO] [stdout] 126 |         LoadArg { result: ValueRef, source: ValueRef, id: usize },
[INFO] [stdout] 127 |         ConstInt { result: ValueRef, value: i32 },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |         ConstLong { result: ValueRef, value: i64 },
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 129 |         IntAdd { result: ValueRef, left: ValueRef, right: ValueRef },
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 130 |         IntXor { result: ValueRef, left: ValueRef, right: ValueRef },
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 131 |         AReturn { retval: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 132 |         IReturn { retval: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 133 |         TypeAdjust { value: ValueRef, current_ty: ValueType, result: ValueRef, new_ty: ValueType },
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 134 |         GetField { result: ValueRef, object: ValueRef, field_desc: LayoutFieldRef },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 135 |         SetField { target: ValueRef, value: ValueRef, field_desc: LayoutFieldRef },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 136 |         Alloc { result: ValueRef, layout_id: LayoutId },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 137 |         Dealloc { value: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 138 |         CallImport { result: Option<ValueRef>, name: String, sig: (Vec<ValueType>, Option<ValueType>), args: Vec<ValueRef> },
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 139 |         Return,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `instructions` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:158:16
[INFO] [stdout]     |
[INFO] [stdout] 147 |     impl Block {
[INFO] [stdout]     |     ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |         pub fn instructions(&self) -> &[Instruction] {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_usize` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:167:16
[INFO] [stdout]     |
[INFO] [stdout] 166 |     impl LayoutId {
[INFO] [stdout]     |     ------------- method in this implementation
[INFO] [stdout] 167 |         pub fn as_usize(&self) -> usize {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `members` is never read
[INFO] [stdout]    --> src/compiler/mod.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     pub struct Layout {
[INFO] [stdout]     |                ------ field in this struct
[INFO] [stdout] 177 |         members: Vec<LayoutFieldRef>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_field`, `size`, `align`, and `as_tagged_zvm` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:181:16
[INFO] [stdout]     |
[INFO] [stdout] 180 |     impl Layout {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 181 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |         pub fn add_field(&mut self, field_layout: LayoutFieldRef) {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |         pub fn size(&self) -> usize {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |         pub fn align(&self) -> usize {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |         pub fn as_tagged_zvm(&self, layout_id: u64) -> StructLayout {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/class_file/validated/method.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter {
[INFO] [stdout]    |                      ^^^^^                  ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter<'_> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `offset`, `ty`, and `name` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |     pub struct LayoutFieldRef {
[INFO] [stdout]     |                -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 213 |         pub offset: i32,
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub ty: ValueType,
[INFO] [stdout]     |             ^^
[INFO] [stdout] 219 |         pub name: Option<String>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutFieldRef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJ_HEADER_ZVM_LAYOUT_ID` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:222:22
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub(crate) const OBJ_HEADER_ZVM_LAYOUT_ID: LayoutFieldRef = LayoutFieldRef {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJ_HEADER_CLASSFILE_REF` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:228:22
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub(crate) const OBJ_HEADER_CLASSFILE_REF: LayoutFieldRef = LayoutFieldRef {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layouts_by_name` and `layouts` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub struct LayoutsInfo {
[INFO] [stdout]     |                ----------- fields in this struct
[INFO] [stdout] 236 |         layouts_by_name: std::collections::HashMap<String, LayoutId>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 237 |         layouts: Vec<Layout>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutsInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `declare`, `get_layout`, `get_layout_id`, and `get_field_in_layout` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:241:16
[INFO] [stdout]     |
[INFO] [stdout] 240 |     impl LayoutsInfo {
[INFO] [stdout]     |     ---------------- associated items in this implementation
[INFO] [stdout] 241 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |         pub fn declare(&mut self, layout: Layout, name: String) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |         pub fn get_layout(&self, layout_id: LayoutId) -> &Layout {
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |         pub fn get_layout_id(&self, name: &str) -> Result<LayoutId, TranslationError> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |         pub fn get_field_in_layout(&self, layout_id: LayoutId, name: &str) -> &LayoutFieldRef {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompileError` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     pub enum CompileError {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TranslationError` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:293:14
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub enum TranslationError {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1164:27
[INFO] [stdout]      |
[INFO] [stdout] 1164 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]      = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1179:27
[INFO] [stdout]      |
[INFO] [stdout] 1179 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `LayoutId`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2705:43
[INFO] [stdout]      |
[INFO] [stdout] 2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]     --> src/compiler/mod.rs:164:5
[INFO] [stdout]      |
[INFO] [stdout]  164 |     pub struct LayoutId(pub usize);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `Arc<ZvmObjectVTable>`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2714:40
[INFO] [stdout]      |
[INFO] [stdout] 2714 |     extern "C" fn zvm_vtable(&self) -> Arc<ZvmObjectVTable> {
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2765:29
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2766:26
[INFO] [stdout]      |
[INFO] [stdout] 2766 |             let layout = ZVM.as_ref().unwrap().layouts().get_layout(layout_id);
[INFO] [stdout]      |                          ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2768:23
[INFO] [stdout]      |
[INFO] [stdout] 2768 |             let obj = ZVM.as_ref().unwrap().obj_alloc(struct_layout).expect("TODO: alloc succeeds");
[INFO] [stdout]      |                       ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2781:30
[INFO] [stdout]      |
[INFO] [stdout] 2781 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2796:30
[INFO] [stdout]      |
[INFO] [stdout] 2796 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1407:5
[INFO] [stdout]      |
[INFO] [stdout] 1407 | /     rt_info.declare_layout({
[INFO] [stdout] 1408 | |         let mut layout = ir::Layout::new();
[INFO] [stdout] 1409 | |         layout.add_field(ir::LayoutFieldRef {
[INFO] [stdout] 1410 | |             offset: 0,
[INFO] [stdout] ...    |
[INFO] [stdout] 1419 | |         layout
[INFO] [stdout] 1420 | |     }, "java/lang/Integer".to_string());
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1407 |     let _ = rt_info.declare_layout({
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1422:9
[INFO] [stdout]      |
[INFO] [stdout] 1422 | /         rt_info.declare_layout({
[INFO] [stdout] 1423 | |             let mut layout = ir::Layout::new();
[INFO] [stdout] 1424 | |             let mut offset = 0;
[INFO] [stdout] 1425 | |             for f in cls.fields.iter() {
[INFO] [stdout] ...    |
[INFO] [stdout] 1433 | |             layout
[INFO] [stdout] 1434 | |         }, cls.this_class.to_string());
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1422 |         let _ = rt_info.declare_layout({
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.27s
[INFO] running `Command { std: "docker" "inspect" "c671c9761182b780e9c136244e0627c11acf757bb543a1e6a346711c72c83486", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c671c9761182b780e9c136244e0627c11acf757bb543a1e6a346711c72c83486", kill_on_drop: false }`
[INFO] [stdout] c671c9761182b780e9c136244e0627c11acf757bb543a1e6a346711c72c83486
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afdba358acb64e90d4c24275369a112d56b737d0d8ff36ba608ef4d0bcd9adc9
[INFO] running `Command { std: "docker" "start" "-a" "afdba358acb64e90d4c24275369a112d56b737d0d8ff36ba608ef4d0bcd9adc9", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[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: `attribute::Attribute`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:7:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::class_file::unvalidated::{attribute::Attribute, AttributeInfo, MethodAccessFlags, MethodInfo};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueRef`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:9:77
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::virtual_machine::{ClassFile, ClassFileRef, UnvalidatedClassFile, ValueRef};
[INFO] [stdout]   |                                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NativeObject`
[INFO] [stdout]   --> src/virtual_machine/jvm/synthetic.rs:10:73
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::virtual_machine::{MethodBody, JvmArray, JvmObject, JvmValue, NativeObject};
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Entry`
[INFO] [stdout]     --> src/virtual_machine.rs:3575:17
[INFO] [stdout]      |
[INFO] [stdout] 3575 |             use std::collections::hash_map::Entry;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SimpleJvmValue`
[INFO] [stdout]  --> src/compiler/mod.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::{SimpleJvmValue, VirtualMachine, VMState};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]     --> src/compiler/mod.rs:1113:5
[INFO] [stdout]      |
[INFO] [stdout] 1113 | use std::cell::RefCell;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]     --> src/compiler/mod.rs:1151:5
[INFO] [stdout]      |
[INFO] [stdout] 1151 | use std::borrow::Borrow;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1154:9
[INFO] [stdout]      |
[INFO] [stdout] 1153 |           let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |                             ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 1154 | /         match &data[..] {
[INFO] [stdout] 1155 | |             b"file.encoding" => {
[INFO] [stdout] 1156 | |                 ValueImpl::string(vm, "UTF-8")
[INFO] [stdout] ...    |
[INFO] [stdout] 1163 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1168:5
[INFO] [stdout]      |
[INFO] [stdout] 1165 |         panic!("invalid argument for getProperty {:?}", argument);
[INFO] [stdout]      |         --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     state.current_frame_mut().operand_stack.push(property);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1202:9
[INFO] [stdout]      |
[INFO] [stdout] 1199 |               panic!("todo: turn class name array into a real string");
[INFO] [stdout]      |               -------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1202 | /         state.current_frame_mut()
[INFO] [stdout] 1203 | |             .operand_stack
[INFO] [stdout] 1204 | |             .push(ValueImpl::array_with_data(
[INFO] [stdout] 1205 | |                 vm.resolve_class(class_name_string).expect("TODO: need to fish out the right string from `cls`."),
[INFO] [stdout] 1206 | |                 elems.into_boxed_slice(),
[INFO] [stdout] 1207 | |             ));
[INFO] [stdout]      | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine.rs:2950:9
[INFO] [stdout]      |
[INFO] [stdout] 2950 | /         Self {
[INFO] [stdout] 2951 | |             cls: class_file,
[INFO] [stdout] 2952 | |             data: panic!("todo: do something with argument")
[INFO] [stdout]      | |                   ------------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 2953 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]     --> src/virtual_machine.rs:2765:61
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^ ------------------------------- any code following this expression is unreachable
[INFO] [stdout]      |                                                             |
[INFO] [stdout]      |                                                             unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |         bytecode: Option<Vec<u8>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut attributes = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/virtual_machine.rs:365:13
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let frame = self.current_frame();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout_id`
[INFO] [stdout]     --> src/virtual_machine.rs:2765:17
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classfile_ptr`
[INFO] [stdout]     --> src/virtual_machine.rs:2770:17
[INFO] [stdout]      |
[INFO] [stdout] 2770 |             let classfile_ptr = Arc::into_raw(class_file);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classfile_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_file`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:18
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:46
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn extends(mut self, name: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn with_method(mut self, name: &str, sig: &str, native: Option<NativeJvmFn<ValueImpl>>) -> Self {
[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/virtual_machine/jvm/synthetic.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut bytecode_methods = self.bytecode_methods;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2931:24
[INFO] [stdout]      |
[INFO] [stdout] 2931 |     fn get_elem(&self, idx: usize) -> Option<&SimpleJvmValue> {
[INFO] [stdout]      |                        ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2934:28
[INFO] [stdout]      |
[INFO] [stdout] 2934 |     fn get_elem_mut(&self, idx: usize) -> Option<&mut SimpleJvmValue> {
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2949:46
[INFO] [stdout]      |
[INFO] [stdout] 2949 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[SimpleJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:224:23
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn with_field(mut self, name: &str, sig: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut cls = ClassFile::validate(&self.cls).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:427:24
[INFO] [stdout]     |
[INFO] [stdout] 427 |     } else if let Some(obj) = argument.as_object() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3104:14
[INFO] [stdout]      |
[INFO] [stdout] 3104 |     fn float(v: f32) -> Self {
[INFO] [stdout]      |              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3108:15
[INFO] [stdout]      |
[INFO] [stdout] 3108 |     fn double(v: f64) -> Self {
[INFO] [stdout]      |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]     --> src/virtual_machine.rs:3112:13
[INFO] [stdout]      |
[INFO] [stdout] 3112 |     fn null(s: String) -> Self {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:595:71
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn object_equals<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]     |                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/virtual_machine.rs:3272:13
[INFO] [stdout]      |
[INFO] [stdout] 3272 |         let mut obj = Self::ObjectTy::new_inst(class_file);
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1152:9
[INFO] [stdout]      |
[INFO] [stdout] 1152 |     let property = if argument.as_type("java/lang/String").is_some() {
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1153:13
[INFO] [stdout]      |
[INFO] [stdout] 1153 |         let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1145:77
[INFO] [stdout]      |
[INFO] [stdout] 1145 | fn system_get_property<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name_string`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1194:13
[INFO] [stdout]      |
[INFO] [stdout] 1194 |         let class_name_string = {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1172:72
[INFO] [stdout]      |
[INFO] [stdout] 1172 | fn array_newarray<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `managed_alloc_name`
[INFO] [stdout]    --> src/compiler/mod.rs:467:17
[INFO] [stdout]     |
[INFO] [stdout] 467 |             let managed_alloc_name = ExternalName::User { namespace: 0, index: 0 };
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_managed_alloc_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:567:29
[INFO] [stdout]     |
[INFO] [stdout] 567 | ...                   other => { return Err(ir::CompileError::InvalidSignature("managed alloc returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/compiler/mod.rs:571:48
[INFO] [stdout]     |
[INFO] [stdout] 571 |                     ir::Instruction::Dealloc { value } => {
[INFO] [stdout]     |                                                ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/compiler/mod.rs:574:59
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     ir::Instruction::CallImport { result, name, sig, args } => {
[INFO] [stdout]     |                                                           ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/compiler/mod.rs:576:51
[INFO] [stdout]     |
[INFO] [stdout] 576 |                         let returns = if let Some(ret) = sig.1 {
[INFO] [stdout]     |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:616:29
[INFO] [stdout]     |
[INFO] [stdout] 616 | ...                   other => { return Err(ir::CompileError::InvalidSignature("call returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/compiler/mod.rs:1421:10
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     for (i, cls) in extra_classes.iter().enumerate() {
[INFO] [stdout]      |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attributes` is never read
[INFO] [stdout]   --> src/class_file/unvalidated/field.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_stack` is never read
[INFO] [stdout]   --> src/class_file/validated/method.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MethodBody {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |     pub(crate) max_stack: u16,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmValue` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2678:12
[INFO] [stdout]      |
[INFO] [stdout] 2678 | pub struct NativeJvmValue {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmObject` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2697:12
[INFO] [stdout]      |
[INFO] [stdout] 2697 | pub struct NativeJvmObject {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `zvm_layout_id` and `zvm_vtable` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:2705:19
[INFO] [stdout]      |
[INFO] [stdout] 2704 | impl NativeJvmObject {
[INFO] [stdout]      | -------------------- methods in this implementation
[INFO] [stdout] 2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2714 |     extern "C" fn zvm_vtable(&self) -> Arc<ZvmObjectVTable> {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ZvmObjectVTable` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2728:8
[INFO] [stdout]      |
[INFO] [stdout] 2728 | struct ZvmObjectVTable {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmArray` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2817:12
[INFO] [stdout]      |
[INFO] [stdout] 2817 | pub struct NativeJvmArray {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeJvmArrayData` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:2845:12
[INFO] [stdout]      |
[INFO] [stdout] 2845 | pub struct NativeJvmArrayData {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cls` and `internal_obj_id` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3329:8
[INFO] [stdout]      |
[INFO] [stdout] 3327 | pub trait JvmArray<ValueTy: JvmValue>: fmt::Debug + Sized + PartialEq + Eq + Hash {
[INFO] [stdout]      |           -------- methods in this trait
[INFO] [stdout] 3328 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[ValueTy]>) -> Self;
[INFO] [stdout] 3329 |     fn cls(&self) -> Arc<ClassFile>;
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 3333 |     fn internal_obj_id(&self) -> u64;
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueRef` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:3338:19
[INFO] [stdout]      |
[INFO] [stdout] 3338 | pub(crate) struct ValueRef<ValueImpl: JvmValue>(ValueImpl);
[INFO] [stdout]      |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `of` is never used
[INFO] [stdout]     --> src/virtual_machine.rs:3341:12
[INFO] [stdout]      |
[INFO] [stdout] 3340 | impl<ValueImpl: JvmValue> ValueRef<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------- associated function in this implementation
[INFO] [stdout] 3341 |     pub fn of(reference: &ValueImpl) -> Self {
[INFO] [stdout]      |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_instance_field`, `get_instance_field`, and `put_instance_field` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3455:8
[INFO] [stdout]      |
[INFO] [stdout] 3442 | impl<ValueImpl: JvmValue> VirtualMachine<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3455 |     fn has_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3487 |     fn get_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3503 |     fn put_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]     --> src/virtual_machine.rs:3778:22
[INFO] [stdout]      |
[INFO] [stdout] 3778 | pub struct Arg { pub ty: ir::ValueType }
[INFO] [stdout]      |            ---       ^^
[INFO] [stdout]      |            |
[INFO] [stdout]      |            field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Arg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionEmitter` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub struct FunctionEmitter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut`, `data`, `link`, and `finalize` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | impl FunctionEmitter {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 318 |     fn data_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn data(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn link(&mut self, relocs: &[cranelift_codegen::MachReloc], rt_info: &dyn RuntimeInfo) -> Result<(), crate::compiler::ir::CompileErro...
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn finalize(self) -> (*mut u8, usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompiledMethod` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct CompiledMethod {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut` and `data` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl CompiledMethod {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 369 |     fn data_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn data(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arguments`, `locals`, `blocks`, and `returns` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:383:5
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub struct ZvmMethod {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 383 |     arguments: Vec<ir::Argument>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 384 |     locals: Vec<ir::Local>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 385 |     blocks: Vec<ir::Block>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 386 |     returns: Option<ir::ValueRef>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ZvmMethod` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RuntimeInfo` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:391:11
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub trait RuntimeInfo: Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `compile` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:416:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl ZvmMethod {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 416 |     pub fn compile(&self, rt_info: &dyn RuntimeInfo) -> Result<CompiledMethod, ir::CompileError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `blocks` and `layouts` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:722:5
[INFO] [stdout]     |
[INFO] [stdout] 720 | struct TranslatorState<'layouts> {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 721 |     current_block: ir::Block,
[INFO] [stdout] 722 |     blocks: Vec<ir::Block>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 728 |     layouts: &'layouts ir::LayoutsInfo,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TranslatorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `desc_to_ir_valuety` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:863:4
[INFO] [stdout]     |
[INFO] [stdout] 863 | fn desc_to_ir_valuety(desc: &str) -> ir::ValueType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytecode2ir` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:871:8
[INFO] [stdout]     |
[INFO] [stdout] 871 | pub fn bytecode2ir(rt_info: &mut dyn RuntimeInfo, method: &MethodBody, sig: (Vec<Arg>, Option<Arg>)) -> Result<ZvmMethod, ir::Translation...
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ZVM` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1115:23
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub(crate) static mut ZVM: Option<&'static mut dyn RuntimeInfo> = None;
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructLayout` is never constructed
[INFO] [stdout]     --> src/compiler/mod.rs:1119:12
[INFO] [stdout]      |
[INFO] [stdout] 1119 | pub struct StructLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `header_size` and `header_align` are never used
[INFO] [stdout]     --> src/compiler/mod.rs:1126:14
[INFO] [stdout]      |
[INFO] [stdout] 1125 | impl StructLayout {
[INFO] [stdout]      | ----------------- associated functions in this implementation
[INFO] [stdout] 1126 |     const fn header_size() -> usize {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1139 |     const fn header_align() -> usize {
[INFO] [stdout]      |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ZvmRuntime` is never constructed
[INFO] [stdout]     --> src/compiler/mod.rs:1146:12
[INFO] [stdout]      |
[INFO] [stdout] 1146 | pub struct ZvmRuntime {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init` and `runtime_alloc_func` are never used
[INFO] [stdout]     --> src/compiler/mod.rs:1154:12
[INFO] [stdout]      |
[INFO] [stdout] 1153 | impl ZvmRuntime {
[INFO] [stdout]      | --------------- associated functions in this implementation
[INFO] [stdout] 1154 |     pub fn init() -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn runtime_alloc_func(layout_id: u64) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jit` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1398:4
[INFO] [stdout]      |
[INFO] [stdout] 1398 | fn jit(args: &[i64], instructions: Vec<validated::Instruction>, signature: &'static str, extra_classes: Vec<Arc<ClassFile>>, rt_info: &mu...
[INFO] [stdout]      |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jitcall` is never used
[INFO] [stdout]     --> src/compiler/mod.rs:1471:4
[INFO] [stdout]      |
[INFO] [stdout] 1471 | fn jitcall(args: &[i64], code: fn(i64, i64, i64, i64, i64, i64) -> i64) -> i64 {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub enum Value {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Const` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub enum Const {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Byte` and `Short` are never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub enum ValueType {
[INFO] [stdout]    |              --------- variants in this enum
[INFO] [stdout] 45 |         Byte,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 46 |         Short,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `size` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     impl ValueType {
[INFO] [stdout]    |     -------------- method in this implementation
[INFO] [stdout] 55 |         fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Const` is never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub enum ValuePool {
[INFO] [stdout]    |              --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |         Const,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValuePool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `constant` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl ValueRef {
[INFO] [stdout]     |     ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn constant(id: usize) -> Self {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionRef` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     struct FunctionRef {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `result`, `source`, and `id` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:126:19
[INFO] [stdout]     |
[INFO] [stdout] 126 |         LoadArg { result: ValueRef, source: ValueRef, id: usize },
[INFO] [stdout]     |         -------   ^^^^^^            ^^^^^^            ^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` 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 variants are never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub enum Instruction {
[INFO] [stdout]     |              ----------- variants in this enum
[INFO] [stdout] 126 |         LoadArg { result: ValueRef, source: ValueRef, id: usize },
[INFO] [stdout] 127 |         ConstInt { result: ValueRef, value: i32 },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |         ConstLong { result: ValueRef, value: i64 },
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 129 |         IntAdd { result: ValueRef, left: ValueRef, right: ValueRef },
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 130 |         IntXor { result: ValueRef, left: ValueRef, right: ValueRef },
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 131 |         AReturn { retval: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 132 |         IReturn { retval: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 133 |         TypeAdjust { value: ValueRef, current_ty: ValueType, result: ValueRef, new_ty: ValueType },
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 134 |         GetField { result: ValueRef, object: ValueRef, field_desc: LayoutFieldRef },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 135 |         SetField { target: ValueRef, value: ValueRef, field_desc: LayoutFieldRef },
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 136 |         Alloc { result: ValueRef, layout_id: LayoutId },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 137 |         Dealloc { value: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 138 |         CallImport { result: Option<ValueRef>, name: String, sig: (Vec<ValueType>, Option<ValueType>), args: Vec<ValueRef> },
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 139 |         Return,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `instructions` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:158:16
[INFO] [stdout]     |
[INFO] [stdout] 147 |     impl Block {
[INFO] [stdout]     |     ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |         pub fn instructions(&self) -> &[Instruction] {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_usize` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:167:16
[INFO] [stdout]     |
[INFO] [stdout] 166 |     impl LayoutId {
[INFO] [stdout]     |     ------------- method in this implementation
[INFO] [stdout] 167 |         pub fn as_usize(&self) -> usize {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `members` is never read
[INFO] [stdout]    --> src/compiler/mod.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     pub struct Layout {
[INFO] [stdout]     |                ------ field in this struct
[INFO] [stdout] 177 |         members: Vec<LayoutFieldRef>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_field`, `size`, `align`, and `as_tagged_zvm` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:181:16
[INFO] [stdout]     |
[INFO] [stdout] 180 |     impl Layout {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 181 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |         pub fn add_field(&mut self, field_layout: LayoutFieldRef) {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |         pub fn size(&self) -> usize {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |         pub fn align(&self) -> usize {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |         pub fn as_tagged_zvm(&self, layout_id: u64) -> StructLayout {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/class_file/validated/method.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter {
[INFO] [stdout]    |                      ^^^^^                  ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter<'_> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `offset`, `ty`, and `name` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |     pub struct LayoutFieldRef {
[INFO] [stdout]     |                -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 213 |         pub offset: i32,
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub ty: ValueType,
[INFO] [stdout]     |             ^^
[INFO] [stdout] 219 |         pub name: Option<String>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutFieldRef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJ_HEADER_ZVM_LAYOUT_ID` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:222:22
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub(crate) const OBJ_HEADER_ZVM_LAYOUT_ID: LayoutFieldRef = LayoutFieldRef {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJ_HEADER_CLASSFILE_REF` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:228:22
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub(crate) const OBJ_HEADER_CLASSFILE_REF: LayoutFieldRef = LayoutFieldRef {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layouts_by_name` and `layouts` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub struct LayoutsInfo {
[INFO] [stdout]     |                ----------- fields in this struct
[INFO] [stdout] 236 |         layouts_by_name: std::collections::HashMap<String, LayoutId>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 237 |         layouts: Vec<Layout>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutsInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `declare`, `get_layout`, `get_layout_id`, and `get_field_in_layout` are never used
[INFO] [stdout]    --> src/compiler/mod.rs:241:16
[INFO] [stdout]     |
[INFO] [stdout] 240 |     impl LayoutsInfo {
[INFO] [stdout]     |     ---------------- associated items in this implementation
[INFO] [stdout] 241 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |         pub fn declare(&mut self, layout: Layout, name: String) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |         pub fn get_layout(&self, layout_id: LayoutId) -> &Layout {
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |         pub fn get_layout_id(&self, name: &str) -> Result<LayoutId, TranslationError> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |         pub fn get_field_in_layout(&self, layout_id: LayoutId, name: &str) -> &LayoutFieldRef {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompileError` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     pub enum CompileError {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TranslationError` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:293:14
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub enum TranslationError {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1164:27
[INFO] [stdout]      |
[INFO] [stdout] 1164 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]      = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1179:27
[INFO] [stdout]      |
[INFO] [stdout] 1179 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `LayoutId`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2705:43
[INFO] [stdout]      |
[INFO] [stdout] 2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]     --> src/compiler/mod.rs:164:5
[INFO] [stdout]      |
[INFO] [stdout]  164 |     pub struct LayoutId(pub usize);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `Arc<ZvmObjectVTable>`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2714:40
[INFO] [stdout]      |
[INFO] [stdout] 2714 |     extern "C" fn zvm_vtable(&self) -> Arc<ZvmObjectVTable> {
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2765:29
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2766:26
[INFO] [stdout]      |
[INFO] [stdout] 2766 |             let layout = ZVM.as_ref().unwrap().layouts().get_layout(layout_id);
[INFO] [stdout]      |                          ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2768:23
[INFO] [stdout]      |
[INFO] [stdout] 2768 |             let obj = ZVM.as_ref().unwrap().obj_alloc(struct_layout).expect("TODO: alloc succeeds");
[INFO] [stdout]      |                       ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2781:30
[INFO] [stdout]      |
[INFO] [stdout] 2781 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2796:30
[INFO] [stdout]      |
[INFO] [stdout] 2796 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1407:5
[INFO] [stdout]      |
[INFO] [stdout] 1407 | /     rt_info.declare_layout({
[INFO] [stdout] 1408 | |         let mut layout = ir::Layout::new();
[INFO] [stdout] 1409 | |         layout.add_field(ir::LayoutFieldRef {
[INFO] [stdout] 1410 | |             offset: 0,
[INFO] [stdout] ...    |
[INFO] [stdout] 1419 | |         layout
[INFO] [stdout] 1420 | |     }, "java/lang/Integer".to_string());
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1407 |     let _ = rt_info.declare_layout({
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1422:9
[INFO] [stdout]      |
[INFO] [stdout] 1422 | /         rt_info.declare_layout({
[INFO] [stdout] 1423 | |             let mut layout = ir::Layout::new();
[INFO] [stdout] 1424 | |             let mut offset = 0;
[INFO] [stdout] 1425 | |             for f in cls.fields.iter() {
[INFO] [stdout] ...    |
[INFO] [stdout] 1433 | |             layout
[INFO] [stdout] 1434 | |         }, cls.this_class.to_string());
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1422 |         let _ = rt_info.declare_layout({
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling zvm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[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: `attribute::Attribute`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:7:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::class_file::unvalidated::{attribute::Attribute, AttributeInfo, MethodAccessFlags, MethodInfo};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueRef`
[INFO] [stdout]  --> src/virtual_machine/jvm/synthetic.rs:9:77
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::virtual_machine::{ClassFile, ClassFileRef, UnvalidatedClassFile, ValueRef};
[INFO] [stdout]   |                                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NativeObject`
[INFO] [stdout]   --> src/virtual_machine/jvm/synthetic.rs:10:73
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::virtual_machine::{MethodBody, JvmArray, JvmObject, JvmValue, NativeObject};
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Entry`
[INFO] [stdout]     --> src/virtual_machine.rs:3575:17
[INFO] [stdout]      |
[INFO] [stdout] 3575 |             use std::collections::hash_map::Entry;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SimpleJvmValue`
[INFO] [stdout]  --> src/compiler/mod.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::{SimpleJvmValue, VirtualMachine, VMState};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]     --> src/compiler/mod.rs:1113:5
[INFO] [stdout]      |
[INFO] [stdout] 1113 | use std::cell::RefCell;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]     --> src/compiler/mod.rs:1151:5
[INFO] [stdout]      |
[INFO] [stdout] 1151 | use std::borrow::Borrow;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]     --> src/virtual_machine.rs:2765:61
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^ ------------------------------- any code following this expression is unreachable
[INFO] [stdout]      |                                                             |
[INFO] [stdout]      |                                                             unreachable call
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1154:9
[INFO] [stdout]      |
[INFO] [stdout] 1153 |           let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |                             ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 1154 | /         match &data[..] {
[INFO] [stdout] 1155 | |             b"file.encoding" => {
[INFO] [stdout] 1156 | |                 ValueImpl::string(vm, "UTF-8")
[INFO] [stdout] ...    |
[INFO] [stdout] 1163 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/virtual_machine.rs:2950:9
[INFO] [stdout]      |
[INFO] [stdout] 2950 | /         Self {
[INFO] [stdout] 2951 | |             cls: class_file,
[INFO] [stdout] 2952 | |             data: panic!("todo: do something with argument")
[INFO] [stdout]      | |                   ------------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 2953 | |         }
[INFO] [stdout]      | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1168:5
[INFO] [stdout]      |
[INFO] [stdout] 1165 |         panic!("invalid argument for getProperty {:?}", argument);
[INFO] [stdout]      |         --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     state.current_frame_mut().operand_stack.push(property);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1202:9
[INFO] [stdout]      |
[INFO] [stdout] 1199 |               panic!("todo: turn class name array into a real string");
[INFO] [stdout]      |               -------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1202 | /         state.current_frame_mut()
[INFO] [stdout] 1203 | |             .operand_stack
[INFO] [stdout] 1204 | |             .push(ValueImpl::array_with_data(
[INFO] [stdout] 1205 | |                 vm.resolve_class(class_name_string).expect("TODO: need to fish out the right string from `cls`."),
[INFO] [stdout] 1206 | |                 elems.into_boxed_slice(),
[INFO] [stdout] 1207 | |             ));
[INFO] [stdout]      | |_______________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn extends(mut self, name: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn with_method(mut self, name: &str, sig: &str, native: Option<NativeJvmFn<ValueImpl>>) -> Self {
[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/virtual_machine/jvm/synthetic.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut bytecode_methods = self.bytecode_methods;
[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/virtual_machine/jvm/synthetic.rs:224:23
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn with_field(mut self, name: &str, sig: &str) -> Self {
[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/virtual_machine/jvm/synthetic.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut cls = ClassFile::validate(&self.cls).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3104:14
[INFO] [stdout]      |
[INFO] [stdout] 3104 |     fn float(v: f32) -> Self {
[INFO] [stdout]      |              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/virtual_machine.rs:3108:15
[INFO] [stdout]      |
[INFO] [stdout] 3108 |     fn double(v: f64) -> Self {
[INFO] [stdout]      |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]     --> src/virtual_machine.rs:3112:13
[INFO] [stdout]      |
[INFO] [stdout] 3112 |     fn null(s: String) -> Self {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `managed_alloc_name`
[INFO] [stdout]    --> src/compiler/mod.rs:467:17
[INFO] [stdout]     |
[INFO] [stdout] 467 |             let managed_alloc_name = ExternalName::User { namespace: 0, index: 0 };
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_managed_alloc_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:567:29
[INFO] [stdout]     |
[INFO] [stdout] 567 | ...                   other => { return Err(ir::CompileError::InvalidSignature("managed alloc returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/compiler/mod.rs:571:48
[INFO] [stdout]     |
[INFO] [stdout] 571 |                     ir::Instruction::Dealloc { value } => {
[INFO] [stdout]     |                                                ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/compiler/mod.rs:574:59
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     ir::Instruction::CallImport { result, name, sig, args } => {
[INFO] [stdout]     |                                                           ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/compiler/mod.rs:576:51
[INFO] [stdout]     |
[INFO] [stdout] 576 |                         let returns = if let Some(ret) = sig.1 {
[INFO] [stdout]     |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/compiler/mod.rs:616:29
[INFO] [stdout]     |
[INFO] [stdout] 616 | ...                   other => { return Err(ir::CompileError::InvalidSignature("call returned multiple values?")); }
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/virtual_machine.rs:365:13
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let frame = self.current_frame();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/virtual_machine.rs:3272:13
[INFO] [stdout]      |
[INFO] [stdout] 3272 |         let mut obj = Self::ObjectTy::new_inst(class_file);
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:427:24
[INFO] [stdout]     |
[INFO] [stdout] 427 |     } else if let Some(obj) = argument.as_object() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]    --> src/virtual_machine/jvm/synthetic.rs:595:71
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn object_equals<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]     |                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout_id`
[INFO] [stdout]     --> src/virtual_machine.rs:2765:17
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `classfile_ptr`
[INFO] [stdout]     --> src/virtual_machine.rs:2770:17
[INFO] [stdout]      |
[INFO] [stdout] 2770 |             let classfile_ptr = Arc::into_raw(class_file);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classfile_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1152:9
[INFO] [stdout]      |
[INFO] [stdout] 1152 |     let property = if argument.as_type("java/lang/String").is_some() {
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1153:13
[INFO] [stdout]      |
[INFO] [stdout] 1153 |         let data: &[u8] = panic!("get string somehow");
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1145:77
[INFO] [stdout]      |
[INFO] [stdout] 1145 | fn system_get_property<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name_string`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1194:13
[INFO] [stdout]      |
[INFO] [stdout] 1194 |         let class_name_string = {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]     --> src/virtual_machine/jvm/synthetic.rs:1172:72
[INFO] [stdout]      |
[INFO] [stdout] 1172 | fn array_newarray<ValueImpl: JvmValue>(state: &mut VMState<ValueImpl>, vm: &mut VirtualMachine<ValueImpl>) -> Result<(), VMError> {
[INFO] [stdout]      |                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_file`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:18
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2897:46
[INFO] [stdout]      |
[INFO] [stdout] 2897 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[NativeJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2931:24
[INFO] [stdout]      |
[INFO] [stdout] 2931 |     fn get_elem(&self, idx: usize) -> Option<&SimpleJvmValue> {
[INFO] [stdout]      |                        ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/virtual_machine.rs:2934:28
[INFO] [stdout]      |
[INFO] [stdout] 2934 |     fn get_elem_mut(&self, idx: usize) -> Option<&mut SimpleJvmValue> {
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/virtual_machine.rs:2949:46
[INFO] [stdout]      |
[INFO] [stdout] 2949 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[SimpleJvmValue]>) -> Self {
[INFO] [stdout]      |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/compiler/mod.rs:1421:10
[INFO] [stdout]      |
[INFO] [stdout] 1421 |     for (i, cls) in extra_classes.iter().enumerate() {
[INFO] [stdout]      |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytecode`
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |         bytecode: Option<Vec<u8>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/class_file/unvalidated/class.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut attributes = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attributes` is never read
[INFO] [stdout]   --> src/class_file/unvalidated/field.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) attributes: Vec<AttributeInfo>,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_stack` is never read
[INFO] [stdout]   --> src/class_file/validated/method.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MethodBody {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |     pub(crate) max_stack: u16,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layout_id` is never read
[INFO] [stdout]     --> src/virtual_machine.rs:2729:5
[INFO] [stdout]      |
[INFO] [stdout] 2728 | struct ZvmObjectVTable {
[INFO] [stdout]      |        --------------- field in this struct
[INFO] [stdout] 2729 |     layout_id: crate::compiler::ir::LayoutId,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]     --> src/virtual_machine.rs:2849:5
[INFO] [stdout]      |
[INFO] [stdout] 2845 | pub struct NativeJvmArrayData {
[INFO] [stdout]      |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2849 |     data: [NativeJvmValue; 1]
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/class_file/validated/method.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter {
[INFO] [stdout]    |                      ^^^^^                  ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, offset: u32) -> MethodInstrIter<'_> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cls` and `internal_obj_id` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3329:8
[INFO] [stdout]      |
[INFO] [stdout] 3327 | pub trait JvmArray<ValueTy: JvmValue>: fmt::Debug + Sized + PartialEq + Eq + Hash {
[INFO] [stdout]      |           -------- methods in this trait
[INFO] [stdout] 3328 |     fn new_array(class_file: Arc<ClassFile>, data: Box<[ValueTy]>) -> Self;
[INFO] [stdout] 3329 |     fn cls(&self) -> Arc<ClassFile>;
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 3333 |     fn internal_obj_id(&self) -> u64;
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueRef` is never constructed
[INFO] [stdout]     --> src/virtual_machine.rs:3338:19
[INFO] [stdout]      |
[INFO] [stdout] 3338 | pub(crate) struct ValueRef<ValueImpl: JvmValue>(ValueImpl);
[INFO] [stdout]      |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `of` is never used
[INFO] [stdout]     --> src/virtual_machine.rs:3341:12
[INFO] [stdout]      |
[INFO] [stdout] 3340 | impl<ValueImpl: JvmValue> ValueRef<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------- associated function in this implementation
[INFO] [stdout] 3341 |     pub fn of(reference: &ValueImpl) -> Self {
[INFO] [stdout]      |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_instance_field`, `get_instance_field`, and `put_instance_field` are never used
[INFO] [stdout]     --> src/virtual_machine.rs:3455:8
[INFO] [stdout]      |
[INFO] [stdout] 3442 | impl<ValueImpl: JvmValue> VirtualMachine<ValueImpl> {
[INFO] [stdout]      | --------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3455 |     fn has_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3487 |     fn get_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3503 |     fn put_instance_field(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `data` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | impl FunctionEmitter {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn data(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relocs` is never read
[INFO] [stdout]    --> src/compiler/mod.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct CompiledMethod {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 363 |     relocs: Box<[cranelift_codegen::MachReloc]>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `data_mut` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl CompiledMethod {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 369 |     fn data_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `blocks` is never read
[INFO] [stdout]    --> src/compiler/mod.rs:722:5
[INFO] [stdout]     |
[INFO] [stdout] 720 | struct TranslatorState<'layouts> {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 721 |     current_block: ir::Block,
[INFO] [stdout] 722 |     blocks: Vec<ir::Block>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TranslatorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layout_id` is never read
[INFO] [stdout]     --> src/compiler/mod.rs:1122:5
[INFO] [stdout]      |
[INFO] [stdout] 1119 | pub struct StructLayout {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1122 |     layout_id: u64,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub enum Value {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Const` is never used
[INFO] [stdout]   --> src/compiler/mod.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub enum Const {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Byte` and `Short` are never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub enum ValueType {
[INFO] [stdout]    |              --------- variants in this enum
[INFO] [stdout] 45 |         Byte,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 46 |         Short,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Const` is never constructed
[INFO] [stdout]   --> src/compiler/mod.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub enum ValuePool {
[INFO] [stdout]    |              --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |         Const,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValuePool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `constant` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl ValueRef {
[INFO] [stdout]     |     ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn constant(id: usize) -> Self {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionRef` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     struct FunctionRef {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Dealloc` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub enum Instruction {
[INFO] [stdout]     |              ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 137 |         Dealloc { value: ValueRef },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBJ_HEADER_ZVM_LAYOUT_ID` is never used
[INFO] [stdout]    --> src/compiler/mod.rs:222:22
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub(crate) const OBJ_HEADER_ZVM_LAYOUT_ID: LayoutFieldRef = LayoutFieldRef {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/compiler/mod.rs:286:26
[INFO] [stdout]     |
[INFO] [stdout] 286 |         InvalidSignature(&'static str),
[INFO] [stdout]     |         ---------------- ^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompileError` has a derived impl for the trait `Debug`, but this is 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] 286 -         InvalidSignature(&'static str),
[INFO] [stdout] 286 +         InvalidSignature(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/compiler/mod.rs:287:27
[INFO] [stdout]     |
[INFO] [stdout] 287 |         InvalidTypeAdjust(ValueRef, ValueType, ValueRef, ValueType),
[INFO] [stdout]     |         ----------------- ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 287 -         InvalidTypeAdjust(ValueRef, ValueType, ValueRef, ValueType),
[INFO] [stdout] 287 +         InvalidTypeAdjust((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidLoad` is never constructed
[INFO] [stdout]    --> src/compiler/mod.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     pub enum CompileError {
[INFO] [stdout]     |              ------------ variant in this enum
[INFO] [stdout] 285 |         InvalidLoad(&'static str),
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1164:27
[INFO] [stdout]      |
[INFO] [stdout] 1164 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]      = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/compiler/mod.rs:1179:27
[INFO] [stdout]      |
[INFO] [stdout] 1179 |         let vm = unsafe { ZVM.as_mut().unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `LayoutId`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2705:43
[INFO] [stdout]      |
[INFO] [stdout] 2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]     --> src/compiler/mod.rs:164:5
[INFO] [stdout]      |
[INFO] [stdout]  164 |     pub struct LayoutId(pub usize);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `Arc<ZvmObjectVTable>`, which is not FFI-safe
[INFO] [stdout]     --> src/virtual_machine.rs:2714:40
[INFO] [stdout]      |
[INFO] [stdout] 2714 |     extern "C" fn zvm_vtable(&self) -> Arc<ZvmObjectVTable> {
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]      = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2765:29
[INFO] [stdout]      |
[INFO] [stdout] 2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
[INFO] [stdout]      |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2766:26
[INFO] [stdout]      |
[INFO] [stdout] 2766 |             let layout = ZVM.as_ref().unwrap().layouts().get_layout(layout_id);
[INFO] [stdout]      |                          ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2768:23
[INFO] [stdout]      |
[INFO] [stdout] 2768 |             let obj = ZVM.as_ref().unwrap().obj_alloc(struct_layout).expect("TODO: alloc succeeds");
[INFO] [stdout]      |                       ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2781:30
[INFO] [stdout]      |
[INFO] [stdout] 2781 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/virtual_machine.rs:2796:30
[INFO] [stdout]      |
[INFO] [stdout] 2796 |         let field = unsafe { crate::compiler::ZVM.as_ref().unwrap().layouts().get_field_in_layout(
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1407:5
[INFO] [stdout]      |
[INFO] [stdout] 1407 | /     rt_info.declare_layout({
[INFO] [stdout] 1408 | |         let mut layout = ir::Layout::new();
[INFO] [stdout] 1409 | |         layout.add_field(ir::LayoutFieldRef {
[INFO] [stdout] 1410 | |             offset: 0,
[INFO] [stdout] ...    |
[INFO] [stdout] 1419 | |         layout
[INFO] [stdout] 1420 | |     }, "java/lang/Integer".to_string());
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1407 |     let _ = rt_info.declare_layout({
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/compiler/mod.rs:1422:9
[INFO] [stdout]      |
[INFO] [stdout] 1422 | /         rt_info.declare_layout({
[INFO] [stdout] 1423 | |             let mut layout = ir::Layout::new();
[INFO] [stdout] 1424 | |             let mut offset = 0;
[INFO] [stdout] 1425 | |             for f in cls.fields.iter() {
[INFO] [stdout] ...    |
[INFO] [stdout] 1433 | |             layout
[INFO] [stdout] 1434 | |         }, cls.this_class.to_string());
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1422 |         let _ = rt_info.declare_layout({
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.69s
[INFO] running `Command { std: "docker" "inspect" "afdba358acb64e90d4c24275369a112d56b737d0d8ff36ba608ef4d0bcd9adc9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afdba358acb64e90d4c24275369a112d56b737d0d8ff36ba608ef4d0bcd9adc9", kill_on_drop: false }`
[INFO] [stdout] afdba358acb64e90d4c24275369a112d56b737d0d8ff36ba608ef4d0bcd9adc9
