repo: zvm
commit: d18bff193c8b1996d072a0ab5c5625ca19b4cdf7, run: 297
status: error in 5m56s
  description: callback error: stack traceback:
	[C]: in ?
	[C]: in field 'size'
	[string "goodfile"]:24: in main chunk
  deployed: false
    
artifacts
Tue, 18 Jul 2023 05:26:32 +0000
step:
git clone log (stdout)
  0kb in 0.859s 
Tue, 18 Jul 2023 05:26:32 +0000
step:
git clone log (stderr)
  0kb in 0.838s 
Tue, 18 Jul 2023 05:26:33 +0000
step:
git checkout log (stdout)
  0kb in 0.030s 
Tue, 18 Jul 2023 05:26:33 +0000
step:
git checkout log (stderr)
  0kb in 0.065s 
Tue, 18 Jul 2023 05:26:33 +0000
step:
cargo build -p zvm log (stdout)
  0kb in 2m2s 
Tue, 18 Jul 2023 05:26:33 +0000
step:
cargo build -p zvm log (stderr)
  28kb in 2m2s 
Tue, 18 Jul 2023 05:28:35 +0000
step:
cargo build -p zvm-stdlib log (stdout)
  0kb in 0.398s 
Tue, 18 Jul 2023 05:28:35 +0000
step:
cargo build -p zvm-stdlib log (stderr)
  27kb in 0.385s 
Tue, 18 Jul 2023 05:28:36 +0000
step:
cargo build -p zvm-tools log (stdout)
  0kb in 2.502s 
Tue, 18 Jul 2023 05:28:36 +0000
step:
cargo build -p zvm-tools log (stderr)
  27kb in 2.489s 
Tue, 18 Jul 2023 05:28:38 +0000
step:
cargo build -p zvm-cli log (stdout)
  0kb in 3.444s 
Tue, 18 Jul 2023 05:28:38 +0000
step:
cargo build -p zvm-cli log (stderr)
  27kb in 3.431s 
Tue, 18 Jul 2023 05:28:42 +0000
step:
cargo test --workspace log (stdout)
  0kb in 9.412s 
Tue, 18 Jul 2023 05:28:42 +0000
step:
cargo test --workspace log (stderr)
  29kb in 9.396s 
Tue, 18 Jul 2023 05:28:51 +0000
step:
cargo build -p zvm --release log (stdout)

Tue, 18 Jul 2023 05:28:51 +0000
step:
cargo build -p zvm --release log (stderr)
   Compiling autocfg v1.1.0
   Compiling cfg-if v1.0.0
   Compiling log v0.4.17
   Compiling libc v0.2.126
   Compiling smallvec v1.9.0
   Compiling proc-macro2 v1.0.42
   Compiling lock_api v0.4.7
   Compiling cranelift-isle v0.86.1
   Compiling parking_lot_core v0.8.5
   Compiling quote v1.0.20
   Compiling byteorder v1.3.2
   Compiling unicode-ident v1.0.2
   Compiling instant v0.1.12
   Compiling indexmap v1.9.1
   Compiling cranelift-codegen-shared v0.86.1
   Compiling scopeguard v1.1.0
   Compiling syn v1.0.98
   Compiling cranelift-codegen-meta v0.86.1
   Compiling mio v0.7.14
   Compiling signal-hook-registry v1.4.0
   Compiling num-traits v0.2.15
   Compiling serde v1.0.140
   Compiling target-lexicon v0.12.4
   Compiling hashbrown v0.12.3
   Compiling serde_derive v1.0.140
   Compiling signal-hook v0.1.17
   Compiling fxhash v0.2.1
   Compiling cranelift-codegen v0.86.1
   Compiling parking_lot v0.11.2
   Compiling cranelift-entity v0.86.1
   Compiling bitflags v1.3.2
   Compiling lazy_static v1.4.0
   Compiling slice-group-by v0.3.0
   Compiling regalloc2 v0.3.1
   Compiling crossterm v0.19.0
   Compiling cranelift-bforest v0.86.1
   Compiling gimli v0.26.2
   Compiling yaxpeax-x86 v1.1.4
   Compiling yaxpeax-arch v0.2.7
   Compiling cranelift-frontend v0.86.1
   Compiling zvm v0.1.0 (/root/ixi_ci_server/tmpdir)
warning: unused import: `std::cell::RefCell`
 --> src/virtual_machine/jvm/synthetic.rs:1:5
  |
1 | use std::cell::RefCell;
  |     ^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `attribute::Attribute`
 --> src/virtual_machine/jvm/synthetic.rs:7:38
  |
7 | use crate::class_file::unvalidated::{attribute::Attribute, AttributeInfo, MethodAccessFlags, MethodInfo};
  |                                      ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `ValueRef`
 --> src/virtual_machine/jvm/synthetic.rs:9:77
  |
9 | use crate::virtual_machine::{ClassFile, ClassFileRef, UnvalidatedClassFile, ValueRef};
  |                                                                             ^^^^^^^^

warning: unused import: `NativeObject`
  --> src/virtual_machine/jvm/synthetic.rs:10:73
   |
10 | use crate::virtual_machine::{MethodBody, JvmArray, JvmObject, JvmValue, NativeObject};
   |                                                                         ^^^^^^^^^^^^

warning: unused import: `std::collections::hash_map::Entry`
    --> src/virtual_machine.rs:3575:17
     |
3575 |             use std::collections::hash_map::Entry;
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `std::rc::Rc`
 --> src/compiler/mod.rs:2:5
  |
2 | use std::rc::Rc;
  |     ^^^^^^^^^^^

warning: unused import: `SimpleJvmValue`
 --> src/compiler/mod.rs:9:13
  |
9 | use crate::{SimpleJvmValue, VirtualMachine, VMState};
  |             ^^^^^^^^^^^^^^

warning: unused import: `std::cell::RefCell`
    --> src/compiler/mod.rs:1113:5
     |
1113 | use std::cell::RefCell;
     |     ^^^^^^^^^^^^^^^^^^

warning: unused import: `std::borrow::Borrow`
    --> src/compiler/mod.rs:1151:5
     |
1151 | use std::borrow::Borrow;
     |     ^^^^^^^^^^^^^^^^^^^

warning: unreachable expression
    --> src/virtual_machine/jvm/synthetic.rs:1154:9
     |
1153 |           let data: &[u8] = panic!("get string somehow");
     |                             ---------------------------- any code following this expression is unreachable
1154 | /         match &data[..] {
1155 | |             b"file.encoding" => {
1156 | |                 ValueImpl::string(vm, "UTF-8")
1157 | |             }
...    |
1162 | |             }
1163 | |         }
     | |_________^ unreachable expression
     |
     = note: `#[warn(unreachable_code)]` on by default

warning: unreachable statement
    --> src/virtual_machine/jvm/synthetic.rs:1168:5
     |
1165 |         panic!("invalid argument for getProperty {:?}", argument);
     |         --------------------------------------------------------- any code following this expression is unreachable
...
1168 |     state.current_frame_mut().operand_stack.push(property);
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement

warning: unreachable statement
    --> src/virtual_machine/jvm/synthetic.rs:1202:9
     |
1199 |               panic!("todo: turn class name array into a real string");
     |               -------------------------------------------------------- any code following this expression is unreachable
...
1202 | /         state.current_frame_mut()
1203 | |             .operand_stack
1204 | |             .push(ValueImpl::array_with_data(
1205 | |                 vm.resolve_class(class_name_string).expect("TODO: need to fish out the right string from `cls`."),
1206 | |                 elems.into_boxed_slice(),
1207 | |             ));
     | |_______________^ unreachable statement

warning: unreachable call
    --> src/virtual_machine.rs:2765:61
     |
2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
     |                                                             ^^^^^^^^^^^^^ ------------------------------- any code following this expression is unreachable
     |                                                             |
     |                                                             unreachable call

warning: unreachable expression
    --> src/virtual_machine.rs:2950:9
     |
2950 | /         Self {
2951 | |             cls: class_file,
2952 | |             data: panic!("todo: do something with argument")
     | |                   ------------------------------------------ any code following this expression is unreachable
2953 | |         }
     | |_________^ unreachable expression

warning: unused variable: `bytecode`
   --> src/class_file/unvalidated/class.rs:180:9
    |
180 |         bytecode: Option>,
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytecode`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `obj`
   --> src/virtual_machine/jvm/synthetic.rs:427:24
    |
427 |     } else if let Some(obj) = argument.as_object() {
    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_obj`

warning: unused variable: `vm`
   --> src/virtual_machine/jvm/synthetic.rs:595:71
    |
595 | fn object_equals(state: &mut VMState, vm: &mut VirtualMachine) -> Result<(), VMError> {
    |                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_vm`

warning: unused variable: `property`
    --> src/virtual_machine/jvm/synthetic.rs:1152:9
     |
1152 |     let property = if argument.as_type("java/lang/String").is_some() {
     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`

warning: unused variable: `data`
    --> src/virtual_machine/jvm/synthetic.rs:1153:13
     |
1153 |         let data: &[u8] = panic!("get string somehow");
     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`

warning: unused variable: `vm`
    --> src/virtual_machine/jvm/synthetic.rs:1145:77
     |
1145 | fn system_get_property(state: &mut VMState, vm: &mut VirtualMachine) -> Result<(), VMError> {
     |                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_vm`

warning: unused variable: `class_name_string`
    --> src/virtual_machine/jvm/synthetic.rs:1194:13
     |
1194 |         let class_name_string = {
     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name_string`

warning: unused variable: `vm`
    --> src/virtual_machine/jvm/synthetic.rs:1172:72
     |
1172 | fn array_newarray(state: &mut VMState, vm: &mut VirtualMachine) -> Result<(), VMError> {
     |                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_vm`

warning: unused variable: `frame`
   --> src/virtual_machine.rs:365:13
    |
365 |         let frame = self.current_frame();
    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`

warning: unused variable: `layout_id`
    --> src/virtual_machine.rs:2765:17
     |
2765 |             let layout_id = ZVM.as_ref().unwrap().layouts().get_layout_id(panic!("&class_file.this_name")).expect("TODO: class exists");
     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout_id`

warning: unused variable: `classfile_ptr`
    --> src/virtual_machine.rs:2770:17
     |
2770 |             let classfile_ptr = Arc::into_raw(class_file);
     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_classfile_ptr`

warning: unused variable: `class_file`
    --> src/virtual_machine.rs:2897:18
     |
2897 |     fn new_array(class_file: Arc, data: Box<[NativeJvmValue]>) -> Self {
     |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_file`

warning: unused variable: `data`
    --> src/virtual_machine.rs:2897:46
     |
2897 |     fn new_array(class_file: Arc, data: Box<[NativeJvmValue]>) -> Self {
     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`

warning: unused variable: `idx`
    --> src/virtual_machine.rs:2931:24
     |
2931 |     fn get_elem(&self, idx: usize) -> Option<&SimpleJvmValue> {
     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_idx`

warning: unused variable: `idx`
    --> src/virtual_machine.rs:2934:28
     |
2934 |     fn get_elem_mut(&self, idx: usize) -> Option<&mut SimpleJvmValue> {
     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_idx`

warning: unused variable: `data`
    --> src/virtual_machine.rs:2949:46
     |
2949 |     fn new_array(class_file: Arc, data: Box<[SimpleJvmValue]>) -> Self {
     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`

warning: unused variable: `v`
    --> src/virtual_machine.rs:3104:14
     |
3104 |     fn float(v: f32) -> Self {
     |              ^ help: if this is intentional, prefix it with an underscore: `_v`

warning: unused variable: `v`
    --> src/virtual_machine.rs:3108:15
     |
3108 |     fn double(v: f64) -> Self {
     |               ^ help: if this is intentional, prefix it with an underscore: `_v`

warning: unused variable: `s`
    --> src/virtual_machine.rs:3112:13
     |
3112 |     fn null(s: String) -> Self {
     |             ^ help: if this is intentional, prefix it with an underscore: `_s`

warning: unused variable: `managed_alloc_name`
   --> src/compiler/mod.rs:467:17
    |
467 |             let managed_alloc_name = ExternalName::User { namespace: 0, index: 0 };
    |                 ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_managed_alloc_name`

warning: unused variable: `other`
   --> src/compiler/mod.rs:567:29
    |
567 | ...                   other => { return Err(ir::CompileError::InvalidSignature("managed alloc returned multiple values?")); }
    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`

warning: unused variable: `value`
   --> src/compiler/mod.rs:571:48
    |
571 |                     ir::Instruction::Dealloc { value } => {
    |                                                ^^^^^ help: try ignoring the field: `value: _`

warning: unused variable: `name`
   --> src/compiler/mod.rs:574:59
    |
574 |                     ir::Instruction::CallImport { result, name, sig, args } => {
    |                                                           ^^^^ help: try ignoring the field: `name: _`

warning: unused variable: `ret`
   --> src/compiler/mod.rs:576:51
    |
576 |                         let returns = if let Some(ret) = sig.1 {
    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_ret`

warning: unused variable: `other`
   --> src/compiler/mod.rs:616:29
    |
616 | ...                   other => { return Err(ir::CompileError::InvalidSignature("call returned multiple values?")); }
    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`

warning: unused variable: `i`
    --> src/compiler/mod.rs:1421:10
     |
1421 |     for (i, cls) in extra_classes.iter().enumerate() {
     |          ^ help: if this is intentional, prefix it with an underscore: `_i`

warning: variable does not need to be mutable
   --> src/class_file/unvalidated/class.rs:183:13
    |
183 |         let mut attributes = Vec::new();
    |             ----^^^^^^^^^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` on by default

warning: variable does not need to be mutable
   --> src/class_file/unvalidated/class.rs:209:9
    |
209 |         mut self,
    |         ----^^^^
    |         |
    |         help: remove this `mut`

warning: variable does not need to be mutable
   --> src/virtual_machine/jvm/synthetic.rs:167:20
    |
167 |     pub fn extends(mut self, name: &str) -> Self {
    |                    ----^^^^
    |                    |
    |                    help: remove this `mut`

warning: variable does not need to be mutable
   --> src/virtual_machine/jvm/synthetic.rs:175:24
    |
175 |     pub fn with_method(mut self, name: &str, sig: &str, native: Option>) -> Self {
    |                        ----^^^^
    |                        |
    |                        help: remove this `mut`

warning: variable does not need to be mutable
   --> src/virtual_machine/jvm/synthetic.rs:178:13
    |
178 |         let mut bytecode_methods = self.bytecode_methods;
    |             ----^^^^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> src/virtual_machine/jvm/synthetic.rs:224:23
    |
224 |     pub fn with_field(mut self, name: &str, sig: &str) -> Self {
    |                       ----^^^^
    |                       |
    |                       help: remove this `mut`

warning: variable does not need to be mutable
   --> src/virtual_machine/jvm/synthetic.rs:243:13
    |
243 |         let mut cls = ClassFile::validate(&self.cls).unwrap();
    |             ----^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
    --> src/virtual_machine.rs:3272:13
     |
3272 |         let mut obj = Self::ObjectTy::new_inst(class_file);
     |             ----^^^
     |             |
     |             help: remove this `mut`

warning: field `attributes` is never read
  --> src/class_file/unvalidated/field.rs:46:16
   |
42 | pub struct FieldInfo {
   |            --------- field in this struct
...
46 |     pub(crate) attributes: Vec,
   |                ^^^^^^^^^^
   |
   = note: `FieldInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
   = note: `#[warn(dead_code)]` on by default

warning: field `max_stack` is never read
  --> src/class_file/validated/method.rs:25:16
   |
24 | pub struct MethodBody {
   |            ---------- field in this struct
25 |     pub(crate) max_stack: u16,
   |                ^^^^^^^^^
   |
   = note: `MethodBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `layout_id` is never read
    --> src/virtual_machine.rs:2729:5
     |
2728 | struct ZvmObjectVTable {
     |        --------------- field in this struct
2729 |     layout_id: crate::compiler::ir::LayoutId,
     |     ^^^^^^^^^

warning: field `data` is never read
    --> src/virtual_machine.rs:2849:5
     |
2845 | pub struct NativeJvmArrayData {
     |            ------------------ field in this struct
...
2849 |     data: [NativeJvmValue; 1]
     |     ^^^^

warning: associated function `of` is never used
    --> src/virtual_machine.rs:3341:12
     |
3341 |     pub fn of(reference: &ValueImpl) -> Self {
     |            ^^

warning: associated function `has_instance_field` is never used
    --> src/virtual_machine.rs:3455:8
     |
3455 |     fn has_instance_field(
     |        ^^^^^^^^^^^^^^^^^^

warning: associated function `get_instance_field` is never used
    --> src/virtual_machine.rs:3487:8
     |
3487 |     fn get_instance_field(
     |        ^^^^^^^^^^^^^^^^^^

warning: associated function `put_instance_field` is never used
    --> src/virtual_machine.rs:3503:8
     |
3503 |     fn put_instance_field(
     |        ^^^^^^^^^^^^^^^^^^

warning: fields `bytes` and `len` are never read
   --> src/compiler/mod.rs:313:5
    |
312 | pub struct FunctionEmitter {
    |            --------------- fields in this struct
313 |     bytes: *mut u8,
    |     ^^^^^
314 |     len: usize,
    |     ^^^

warning: struct `CompiledMethod` is never constructed
   --> src/compiler/mod.rs:360:12
    |
360 | pub struct CompiledMethod {
    |            ^^^^^^^^^^^^^^

warning: fields `arguments`, `locals`, `blocks`, and `returns` are never read
   --> src/compiler/mod.rs:383:5
    |
382 | pub struct ZvmMethod {
    |            --------- fields in this struct
383 |     arguments: Vec,
    |     ^^^^^^^^^
384 |     locals: Vec,
    |     ^^^^^^
385 |     blocks: Vec,
    |     ^^^^^^
386 |     returns: Option,
    |     ^^^^^^^
    |
    = note: `ZvmMethod` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `blocks` and `layouts` are never read
   --> src/compiler/mod.rs:722:5
    |
720 | struct TranslatorState<'layouts> {
    |        --------------- fields in this struct
721 |     current_block: ir::Block,
722 |     blocks: Vec,
    |     ^^^^^^
...
728 |     layouts: &'layouts ir::LayoutsInfo,
    |     ^^^^^^^
    |
    = note: `TranslatorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: function `desc_to_ir_valuety` is never used
   --> src/compiler/mod.rs:863:4
    |
863 | fn desc_to_ir_valuety(desc: &str) -> ir::ValueType {
    |    ^^^^^^^^^^^^^^^^^^

warning: function `bytecode2ir` is never used
   --> src/compiler/mod.rs:871:8
    |
871 | pub fn bytecode2ir(rt_info: &mut dyn RuntimeInfo, method: &MethodBody, sig: (Vec, Option)) -> Result src/compiler/mod.rs:1122:5
     |
1119 | pub struct StructLayout {
     |            ------------ field in this struct
...
1122 |     layout_id: u64,
     |     ^^^^^^^^^

warning: function `jit` is never used
    --> src/compiler/mod.rs:1398:4
     |
1398 | fn jit(args: &[i64], instructions: Vec, signature: &'static str, extra_classes: Vec>, rt_info: &mu...
     |    ^^^

warning: function `jitcall` is never used
    --> src/compiler/mod.rs:1471:4
     |
1471 | fn jitcall(args: &[i64], code: fn(i64, i64, i64, i64, i64, i64) -> i64) -> i64 {
     |    ^^^^^^^

warning: associated function `data_mut` is never used
   --> src/compiler/mod.rs:318:8
    |
318 |     fn data_mut(&mut self) -> &mut [u8] {
    |        ^^^^^^^^

warning: associated function `data` is never used
   --> src/compiler/mod.rs:323:8
    |
323 |     fn data(&self) -> &[u8] {
    |        ^^^^

warning: associated function `link` is never used
   --> src/compiler/mod.rs:328:8
    |
328 |     fn link(&mut self, relocs: &[cranelift_codegen::MachReloc], rt_info: &dyn RuntimeInfo) -> Result<(), crate::compiler::ir::CompileErro...
    |        ^^^^

warning: associated function `finalize` is never used
   --> src/compiler/mod.rs:346:8
    |
346 |     fn finalize(self) -> (*mut u8, usize) {
    |        ^^^^^^^^

warning: associated function `data_mut` is never used
   --> src/compiler/mod.rs:369:8
    |
369 |     fn data_mut(&mut self) -> &mut [u8] {
    |        ^^^^^^^^

warning: associated function `data` is never used
   --> src/compiler/mod.rs:374:8
    |
374 |     fn data(&self) -> &[u8] {
    |        ^^^^

warning: associated function `compile` is never used
   --> src/compiler/mod.rs:416:12
    |
416 |     pub fn compile(&self, rt_info: &dyn RuntimeInfo) -> Result {
    |            ^^^^^^^

warning: associated function `init` is never used
    --> src/compiler/mod.rs:1154:12
     |
1154 |     pub fn init() -> Self {
     |            ^^^^

warning: variants `Argument`, `Local`, and `Const` are never constructed
  --> src/compiler/mod.rs:17:9
   |
16 |     pub enum Value {
   |              ----- variants in this enum
17 |         Argument(Argument),
   |         ^^^^^^^^
18 |         Local(Local),
   |         ^^^^^
19 |         Const(Const),
   |         ^^^^^
   |
   = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: multiple variants are never constructed
  --> src/compiler/mod.rs:34:9
   |
33 |     pub enum Const {
   |              ----- variants in this enum
34 |         Byte(i8),
   |         ^^^^
35 |         Short(i16),
   |         ^^^^^
36 |         Int(i32),
   |         ^^^
37 |         Long(i64),
   |         ^^^^
38 |         Float(f32),
   |         ^^^^^
39 |         Double(f64),
   |         ^^^^^^
40 |         Null,
   |         ^^^^
   |
   = note: `Const` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: variants `Byte` and `Short` are never constructed
  --> src/compiler/mod.rs:45:9
   |
44 |     pub enum ValueType {
   |              --------- variants in this enum
45 |         Byte,
   |         ^^^^
46 |         Short,
   |         ^^^^^
   |
   = note: `ValueType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis

warning: variant `Const` is never constructed
  --> src/compiler/mod.rs:88:9
   |
85 |     pub enum ValuePool {
   |              --------- variant in this enum
...
88 |         Const,
   |         ^^^^^
   |
   = note: `ValuePool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis

warning: struct `FunctionRef` is never constructed
   --> src/compiler/mod.rs:120:12
    |
120 |     struct FunctionRef {
    |            ^^^^^^^^^^^

warning: multiple variants are never constructed
   --> src/compiler/mod.rs:127:9
    |
125 |     pub enum Instruction {
    |              ----------- variants in this enum
126 |         LoadArg { result: ValueRef, source: ValueRef, id: usize },
127 |         ConstInt { result: ValueRef, value: i32 },
    |         ^^^^^^^^
128 |         ConstLong { result: ValueRef, value: i64 },
    |         ^^^^^^^^^
129 |         IntAdd { result: ValueRef, left: ValueRef, right: ValueRef },
    |         ^^^^^^
130 |         IntXor { result: ValueRef, left: ValueRef, right: ValueRef },
    |         ^^^^^^
131 |         AReturn { retval: ValueRef },
    |         ^^^^^^^
132 |         IReturn { retval: ValueRef },
    |         ^^^^^^^
133 |         TypeAdjust { value: ValueRef, current_ty: ValueType, result: ValueRef, new_ty: ValueType },
    |         ^^^^^^^^^^
134 |         GetField { result: ValueRef, object: ValueRef, field_desc: LayoutFieldRef },
    |         ^^^^^^^^
135 |         SetField { target: ValueRef, value: ValueRef, field_desc: LayoutFieldRef },
    |         ^^^^^^^^
136 |         Alloc { result: ValueRef, layout_id: LayoutId },
    |         ^^^^^
137 |         Dealloc { value: ValueRef },
    |         ^^^^^^^
138 |         CallImport { result: Option, name: String, sig: (Vec, Option), args: Vec },
    |         ^^^^^^^^^^
139 |         Return,
    |         ^^^^^^
    |
    = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: constant `OBJ_HEADER_ZVM_LAYOUT_ID` is never used
   --> src/compiler/mod.rs:222:22
    |
222 |     pub(crate) const OBJ_HEADER_ZVM_LAYOUT_ID: LayoutFieldRef = LayoutFieldRef {
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `OBJ_HEADER_CLASSFILE_REF` is never used
   --> src/compiler/mod.rs:228:22
    |
228 |     pub(crate) const OBJ_HEADER_CLASSFILE_REF: LayoutFieldRef = LayoutFieldRef {
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^

warning: variants `InvalidLoad`, `InvalidSignature`, and `InvalidTypeAdjust` are never constructed
   --> src/compiler/mod.rs:285:9
    |
284 |     pub enum CompileError {
    |              ------------ variants in this enum
285 |         InvalidLoad(&'static str),
    |         ^^^^^^^^^^^
286 |         InvalidSignature(&'static str),
    |         ^^^^^^^^^^^^^^^^
287 |         InvalidTypeAdjust(ValueRef, ValueType, ValueRef, ValueType),
    |         ^^^^^^^^^^^^^^^^^
    |
    = note: `CompileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: variant `UnsupportedInstruction` is never constructed
   --> src/compiler/mod.rs:294:9
    |
293 |     pub enum TranslationError {
    |              ---------------- variant in this enum
294 |         UnsupportedInstruction(crate::class_file::validated::Instruction),
    |         ^^^^^^^^^^^^^^^^^^^^^^

warning: associated function `constant` is never used
   --> src/compiler/mod.rs:112:16
    |
112 |         pub fn constant(id: usize) -> Self {
    |                ^^^^^^^^

warning: associated function `instructions` is never used
   --> src/compiler/mod.rs:158:16
    |
158 |         pub fn instructions(&self) -> &[Instruction] {
    |                ^^^^^^^^^^^^

warning: associated function `as_usize` is never used
   --> src/compiler/mod.rs:167:16
    |
167 |         pub fn as_usize(&self) -> usize {
    |                ^^^^^^^^

warning: associated function `new` is never used
   --> src/compiler/mod.rs:181:16
    |
181 |         pub fn new() -> Self {
    |                ^^^

warning: associated function `add_field` is never used
   --> src/compiler/mod.rs:187:16
    |
187 |         pub fn add_field(&mut self, field_layout: LayoutFieldRef) {
    |                ^^^^^^^^^

warning: associated function `new` is never used
   --> src/compiler/mod.rs:241:16
    |
241 |         pub fn new() -> Self {
    |                ^^^

warning: `extern` fn uses type `LayoutId`, which is not FFI-safe
    --> src/virtual_machine.rs:2705:43
     |
2705 |     extern "C" fn zvm_layout_id(&self) -> crate::compiler::ir::LayoutId {
     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
     |
     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
     = note: this struct has unspecified layout
note: the type is defined here
    --> src/compiler/mod.rs:164:5
     |
164  |     pub struct LayoutId(pub usize);
     |     ^^^^^^^^^^^^^^^^^^^
     = note: `#[warn(improper_ctypes_definitions)]` on by default

warning: `extern` fn uses type `Arc`, which is not FFI-safe
    --> src/virtual_machine.rs:2714:40
     |
2714 |     extern "C" fn zvm_vtable(&self) -> Arc {
     |                                        ^^^^^^^^^^^^^^^^^^^^ not FFI-safe
     |
     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
     = note: this struct has unspecified layout

warning: unused `std::result::Result` that must be used
    --> src/compiler/mod.rs:1407:5
     |
1407 | /     rt_info.declare_layout({
1408 | |         let mut layout = ir::Layout::new();
1409 | |         layout.add_field(ir::LayoutFieldRef {
1410 | |             offset: 0,
...    |
1419 | |         layout
1420 | |     }, "java/lang/Integer".to_string());
     | |_______________________________________^
     |
     = note: this `Result` may be an `Err` variant, which should be handled
     = note: `#[warn(unused_must_use)]` on by default

warning: unused `std::result::Result` that must be used
    --> src/compiler/mod.rs:1422:9
     |
1422 | /         rt_info.declare_layout({
1423 | |             let mut layout = ir::Layout::new();
1424 | |             let mut offset = 0;
1425 | |             for f in cls.fields.iter() {
...    |
1433 | |             layout
1434 | |         }, cls.this_class.to_string());
     | |______________________________________^
     |
     = note: this `Result` may be an `Err` variant, which should be handled

warning: `zvm` (lib) generated 93 warnings (run `cargo fix --lib -p zvm` to apply 43 suggestions)
    Finished release [optimized] target(s) in 3m 35s

metrics

nameci-butactuallyin-space
x86_64 Skylake @ 2.000GHz
rust versionrustc 1.68.0-nightly (88c58e3c2 2022-12-26)