Class: Rubydex::Class

Inherits:
Namespace show all
Includes:
Visibility
Defined in:
lib/rubydex/declaration.rb,
ext/rubydex/declaration.c

Instance Method Summary collapse

Methods included from Visibility

#private?, #protected?, #public?

Methods inherited from Namespace

#ancestors, #descendants, #find_member, #member, #members, #references, #singleton_class

Methods inherited from Declaration

#definitions, #initialize, #name, #owner, #references, #unqualified_name

Constructor Details

This class inherits a constructor from Rubydex::Declaration

Instance Method Details

#visibilityObject

Declaration#visibility -> Symbol



424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
# File 'ext/rubydex/declaration.c', line 424

static VALUE rdxr_declaration_visibility(VALUE self) {
    HandleData *data;
    TypedData_Get_Struct(self, HandleData, &handle_type, data);

    void *graph;
    TypedData_Get_Struct(data->graph_obj, void *, &graph_type, graph);

    const CVisibility *visibility = rdx_graph_visibility(graph, data->id);
    if (visibility == NULL) {
        rb_raise(rb_eRuntimeError, "declaration has no visibility");
    }

    VALUE symbol = rdxi_visibility_to_symbol(*visibility);
    free_c_visibility(visibility);

    return symbol;
}