Go to the source code of this file.
|
enum | rb_method_visibility_t {
METHOD_VISI_UNDEF = 0x00
, METHOD_VISI_PUBLIC = 0x01
, METHOD_VISI_PRIVATE = 0x02
, METHOD_VISI_PROTECTED = 0x03
,
METHOD_VISI_MASK = 0x03
, METHOD_VISI_UNDEF = 0x00
, METHOD_VISI_PUBLIC = 0x01
, METHOD_VISI_PRIVATE = 0x02
,
METHOD_VISI_PROTECTED = 0x03
, METHOD_VISI_MASK = 0x03
} |
|
enum | rb_method_type_t {
VM_METHOD_TYPE_ISEQ
, VM_METHOD_TYPE_CFUNC
, VM_METHOD_TYPE_ATTRSET
, VM_METHOD_TYPE_IVAR
,
VM_METHOD_TYPE_BMETHOD
, VM_METHOD_TYPE_ZSUPER
, VM_METHOD_TYPE_ALIAS
, VM_METHOD_TYPE_UNDEF
,
VM_METHOD_TYPE_NOTIMPLEMENTED
, VM_METHOD_TYPE_OPTIMIZED
, VM_METHOD_TYPE_MISSING
, VM_METHOD_TYPE_REFINED
,
VM_METHOD_TYPE_ISEQ
, VM_METHOD_TYPE_CFUNC
, VM_METHOD_TYPE_ATTRSET
, VM_METHOD_TYPE_IVAR
,
VM_METHOD_TYPE_BMETHOD
, VM_METHOD_TYPE_ZSUPER
, VM_METHOD_TYPE_ALIAS
, VM_METHOD_TYPE_UNDEF
,
VM_METHOD_TYPE_NOTIMPLEMENTED
, VM_METHOD_TYPE_OPTIMIZED
, VM_METHOD_TYPE_MISSING
, VM_METHOD_TYPE_REFINED
} |
|
enum | method_optimized_type {
OPTIMIZED_METHOD_TYPE_SEND
, OPTIMIZED_METHOD_TYPE_CALL
, OPTIMIZED_METHOD_TYPE_BLOCK_CALL
, OPTIMIZED_METHOD_TYPE__MAX
,
OPTIMIZED_METHOD_TYPE_SEND
, OPTIMIZED_METHOD_TYPE_CALL
, OPTIMIZED_METHOD_TYPE_BLOCK_CALL
, OPTIMIZED_METHOD_TYPE__MAX
} |
|
|
| STATIC_ASSERT (VM_METHOD_TYPE_MINIMUM_BITS, VM_METHOD_TYPE_REFINED<=(1<< VM_METHOD_TYPE_MINIMUM_BITS)) |
|
| STATIC_ASSERT (sizeof_method_def, offsetof(rb_method_definition_t, body)==8) |
|
void | rb_add_method_cfunc (VALUE klass, ID mid, VALUE(*func)(ANYARGS), int argc, rb_method_visibility_t visi) |
|
void | rb_add_method_iseq (VALUE klass, ID mid, const rb_iseq_t *iseq, rb_cref_t *cref, rb_method_visibility_t visi) |
|
void | rb_add_refined_method_entry (VALUE refined_class, ID mid) |
|
void | rb_add_method (VALUE klass, ID mid, rb_method_type_t type, void *option, rb_method_visibility_t visi) |
|
rb_method_entry_t * | rb_method_entry_set (VALUE klass, ID mid, const rb_method_entry_t *, rb_method_visibility_t noex) |
|
rb_method_entry_t * | rb_method_entry_create (ID called_id, VALUE klass, rb_method_visibility_t visi, const rb_method_definition_t *def) |
|
const rb_method_entry_t * | rb_method_entry_at (VALUE obj, ID id) |
|
const rb_method_entry_t * | rb_method_entry (VALUE klass, ID id) |
|
const rb_method_entry_t * | rb_method_entry_with_refinements (VALUE klass, ID id, VALUE *defined_class) |
|
const rb_method_entry_t * | rb_method_entry_without_refinements (VALUE klass, ID id, VALUE *defined_class) |
|
const rb_method_entry_t * | rb_resolve_refined_method (VALUE refinements, const rb_method_entry_t *me) |
|
RUBY_SYMBOL_EXPORT_BEGIN const rb_method_entry_t * | rb_resolve_me_location (const rb_method_entry_t *, VALUE[5]) |
|
RUBY_SYMBOL_EXPORT_END const rb_callable_method_entry_t * | rb_callable_method_entry (VALUE klass, ID id) |
|
const rb_callable_method_entry_t * | rb_callable_method_entry_with_refinements (VALUE klass, ID id, VALUE *defined_class) |
|
const rb_callable_method_entry_t * | rb_callable_method_entry_without_refinements (VALUE klass, ID id, VALUE *defined_class) |
|
int | rb_method_entry_arity (const rb_method_entry_t *me) |
|
int | rb_method_entry_eq (const rb_method_entry_t *m1, const rb_method_entry_t *m2) |
|
st_index_t | rb_hash_method_entry (st_index_t hash, const rb_method_entry_t *me) |
|
VALUE | rb_method_entry_location (const rb_method_entry_t *me) |
|
void | rb_free_method_entry (const rb_method_entry_t *me) |
|
const rb_method_entry_t * | rb_method_entry_clone (const rb_method_entry_t *me) |
|
const rb_callable_method_entry_t * | rb_method_entry_complement_defined_class (const rb_method_entry_t *src_me, ID called_id, VALUE defined_class) |
|
void | rb_method_entry_copy (rb_method_entry_t *dst, const rb_method_entry_t *src) |
|
void | rb_scope_visibility_set (rb_method_visibility_t) |
|
VALUE | rb_unnamed_parameters (int arity) |
|
◆ END_OF_ENUMERATION
#define END_OF_ENUMERATION |
( |
|
key | ) |
END_OF_##key##_PLACEHOLDER = 0 |
◆ METHOD_ENTRY_BASIC
◆ METHOD_ENTRY_COMPLEMENTED
◆ METHOD_ENTRY_COMPLEMENTED_SET
◆ METHOD_ENTRY_VISI
◆ rb_iseq_t
◆ UNDEFINED_METHOD_ENTRY_P
◆ UNDEFINED_REFINED_METHOD_P
#define UNDEFINED_REFINED_METHOD_P |
( |
|
def | ) |
|
Value:
@ VM_METHOD_TYPE_REFINED
refinement
#define UNDEFINED_METHOD_ENTRY_P(me)
VALUE type(ANYARGS)
ANYARGS-ed function type.
Definition at line 188 of file method.h.
◆ VM_METHOD_TYPE_MINIMUM_BITS
#define VM_METHOD_TYPE_MINIMUM_BITS 4 |
◆ rb_callable_method_entry_t
◆ rb_cref_t
◆ rb_iseq_t
◆ rb_method_alias_t
◆ rb_method_attr_t
◆ rb_method_bmethod_t
◆ rb_method_cfunc_t
◆ rb_method_definition_t
◆ rb_method_entry_t
◆ rb_method_iseq_t
◆ rb_method_refined_t
◆ rb_scope_visibility_t
◆ method_optimized_type
Enumerator |
---|
OPTIMIZED_METHOD_TYPE_SEND | |
OPTIMIZED_METHOD_TYPE_CALL | |
OPTIMIZED_METHOD_TYPE_BLOCK_CALL | |
OPTIMIZED_METHOD_TYPE__MAX | |
OPTIMIZED_METHOD_TYPE_SEND | |
OPTIMIZED_METHOD_TYPE_CALL | |
OPTIMIZED_METHOD_TYPE_BLOCK_CALL | |
OPTIMIZED_METHOD_TYPE__MAX | |
Definition at line 156 of file method.h.
◆ rb_method_type_t
Enumerator |
---|
VM_METHOD_TYPE_ISEQ | |
VM_METHOD_TYPE_CFUNC | |
VM_METHOD_TYPE_ATTRSET | |
VM_METHOD_TYPE_IVAR | |
VM_METHOD_TYPE_BMETHOD | |
VM_METHOD_TYPE_ZSUPER | |
VM_METHOD_TYPE_ALIAS | |
VM_METHOD_TYPE_UNDEF | |
VM_METHOD_TYPE_NOTIMPLEMENTED | |
VM_METHOD_TYPE_OPTIMIZED | |
VM_METHOD_TYPE_MISSING | |
VM_METHOD_TYPE_REFINED | |
VM_METHOD_TYPE_ISEQ | Ruby method.
|
VM_METHOD_TYPE_CFUNC | C method.
|
VM_METHOD_TYPE_ATTRSET | attr_writer or attr_accessor
|
VM_METHOD_TYPE_IVAR | attr_reader or attr_accessor
|
VM_METHOD_TYPE_BMETHOD | |
VM_METHOD_TYPE_ZSUPER | |
VM_METHOD_TYPE_ALIAS | |
VM_METHOD_TYPE_UNDEF | |
VM_METHOD_TYPE_NOTIMPLEMENTED | |
VM_METHOD_TYPE_OPTIMIZED | Kernel::send, Proc::call, etc.
|
VM_METHOD_TYPE_MISSING | wrapper for method_missing(id)
|
VM_METHOD_TYPE_REFINED | refinement
|
Definition at line 101 of file method.h.
◆ rb_method_visibility_t
Enumerator |
---|
METHOD_VISI_UNDEF | |
METHOD_VISI_PUBLIC | |
METHOD_VISI_PRIVATE | |
METHOD_VISI_PROTECTED | |
METHOD_VISI_MASK | |
METHOD_VISI_UNDEF | |
METHOD_VISI_PUBLIC | |
METHOD_VISI_PRIVATE | |
METHOD_VISI_PROTECTED | |
METHOD_VISI_MASK | |
Definition at line 26 of file method.h.
◆ rb_add_method()
◆ rb_add_method_cfunc()
◆ rb_add_method_iseq()
◆ rb_add_refined_method_entry()
void rb_add_refined_method_entry |
( |
VALUE |
refined_class, |
|
|
ID |
mid |
|
) |
| |
◆ rb_callable_method_entry()
◆ rb_callable_method_entry_with_refinements()
◆ rb_callable_method_entry_without_refinements()
◆ rb_free_method_entry()
◆ rb_hash_method_entry()
◆ rb_method_entry()
◆ rb_method_entry_arity()
◆ rb_method_entry_at()
◆ rb_method_entry_clone()
◆ rb_method_entry_complement_defined_class()
◆ rb_method_entry_copy()
◆ rb_method_entry_create()
◆ rb_method_entry_eq()
◆ rb_method_entry_location()
◆ rb_method_entry_set()
◆ rb_method_entry_with_refinements()
◆ rb_method_entry_without_refinements()
◆ rb_resolve_me_location()
◆ rb_resolve_refined_method()
◆ rb_scope_visibility_set()
◆ rb_unnamed_parameters()
VALUE rb_unnamed_parameters |
( |
int |
arity | ) |
|
◆ STATIC_ASSERT() [1/2]
◆ STATIC_ASSERT() [2/2]