Ruby 3.5.0dev (2025-02-20 revision 34098b669c0cbc024cd08e686891f1dfe0a10aaf)
|
Data Structures | |
struct | iseq_insn_info |
Data Fields | ||
enum rb_iseq_type | type | |
unsigned int | iseq_size | |
VALUE * | iseq_encoded | |
struct { | ||
struct { | ||
unsigned int has_lead: 1 | ||
unsigned int has_opt: 1 | ||
unsigned int has_rest: 1 | ||
unsigned int has_post: 1 | ||
unsigned int has_kw: 1 | ||
unsigned int has_kwrest: 1 | ||
unsigned int has_block: 1 | ||
unsigned int ambiguous_param0: 1 | ||
unsigned int accepts_no_kwarg: 1 | ||
unsigned int ruby2_keywords: 1 | ||
unsigned int anon_rest: 1 | ||
unsigned int anon_kwrest: 1 | ||
unsigned int use_block: 1 | ||
unsigned int forwardable: 1 | ||
} flags | ||
unsigned int size | ||
int lead_num | ||
int opt_num | ||
int rest_start | ||
int post_start | ||
int post_num | ||
int block_start | ||
const VALUE * opt_table | ||
struct rb_iseq_param_keyword { | ||
int num | ||
int required_num | ||
int bits_start | ||
int rest_start | ||
const ID * table | ||
VALUE * default_values | ||
} keyword | ||
} | param | |
parameter information | ||
rb_iseq_location_t | location | |
struct rb_iseq_constant_body::iseq_insn_info | insns_info | |
const ID * | local_table | |
struct iseq_catch_table * | catch_table | |
const struct rb_iseq_struct * | parent_iseq | |
struct rb_iseq_struct * | local_iseq | |
union iseq_inline_storage_entry * | is_entries | |
struct rb_call_data * | call_data | |
struct { | ||
rb_snum_t flip_count | ||
VALUE script_lines | ||
VALUE coverage | ||
VALUE pc2branchindex | ||
VALUE * original_iseq | ||
} | variable | |
unsigned int | local_table_size | |
unsigned int | ic_size | |
unsigned int | ise_size | |
unsigned int | ivc_size | |
unsigned int | icvarc_size | |
unsigned int | ci_size | |
unsigned int | stack_max | |
unsigned int | builtin_attrs | |
bool | prism | |
union { | ||
iseq_bits_t * list | ||
iseq_bits_t single | ||
} | mark_bits | |
struct rb_id_table * | outer_variables | |
const rb_iseq_t * | mandatory_only_iseq | |
struct rb_call_data* rb_iseq_constant_body::call_data |
struct iseq_catch_table* rb_iseq_constant_body::catch_table |
union iseq_inline_storage_entry* rb_iseq_constant_body::is_entries |
struct rb_iseq_struct* rb_iseq_constant_body::local_iseq |
rb_iseq_location_t rb_iseq_constant_body::location |
const rb_iseq_t* rb_iseq_constant_body::mandatory_only_iseq |
struct rb_id_table* rb_iseq_constant_body::outer_variables |
struct { ... } rb_iseq_constant_body::param |
parameter information
def m(a1, a2, ..., aM, # mandatory b1=(...), b2=(...), ..., bN=(...), # optional *c, # rest d1, d2, ..., dO, # post e1:(...), e2:(...), ..., eK:(...), # keyword **f, # keyword_rest &g) # block =>
lead_num = M opt_num = N rest_start = M+N post_start = M+N+(*1) post_num = O keyword_num = K block_start = M+N+(*1)+O+K keyword_bits = M+N+(*1)+O+K+(&1) size = M+N+O+(*1)+K+(&1)+(**1) // parameter size.
const struct rb_iseq_struct* rb_iseq_constant_body::parent_iseq |