Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
Data Structures | Data Fields
rb_iseq_constant_body Struct Reference

Data Structures

struct  iseq_insn_info
 

Data Fields

enum rb_iseq_type type
 
unsigned int iseq_size
 
VALUEiseq_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 More...
 
rb_iseq_location_t location
 
struct rb_iseq_constant_body::iseq_insn_info insns_info
 
const IDlocal_table
 
struct iseq_catch_tablecatch_table
 
const struct rb_iseq_structparent_iseq
 
struct rb_iseq_structlocal_iseq
 
union iseq_inline_storage_entryis_entries
 
struct rb_call_datacall_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_tableouter_variables
 
const rb_iseq_tmandatory_only_iseq
 

Detailed Description

Definition at line 404 of file vm_core.h.

Field Documentation

◆ 

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.


The documentation for this struct was generated from the following file: