Expand description
Bytecode elements definitions. All the Ref* types in this modules are references to bytecode elements like constants or function. They are required since we cannot use rust references as that would make our structure self-referential. They makes the code look a bit more complicated than it actually is. Every Ref* struct is cheaply copyable.
Structs
- A constant definition
- An enum variant definition
- A function definition with its code.
- A native function reference. Contains no code but indicates the library from where to load it.
- An object field definition
- An object method definition
- A reference to the bytes constant pool
- A reference to an enum variant
- A reference to an object field
- A reference to the f64 constant pool
- Index reference to a function or a native in the pool (findex)
- A reference to a global
- A reference to the i32 constant pool
- Reference to the string constant pool
- Reference to a type in the constant pool
- A register argument
- Common type for Type::Fun and Type::Method
- Common type for Type::Obj and Type::Struct
- An inline bool value
Enums
- Reference to a function or a native object
- Type available in the hashlink type system. Every type is one of those.