class Rubydex::MethodReference
Public Instance Methods
Source
static VALUE rdxr_method_reference_location(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
Location *loc = rdx_method_reference_location(graph, data->id);
VALUE location = rdxi_build_location_value(loc);
rdx_location_free(loc);
return location;
}
Returns the source location for this method reference.
Source
static VALUE rdxr_method_reference_name(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
const char *name = rdx_method_reference_name(graph, data->id);
return rdxi_owned_c_string_to_ruby(name);
}
Returns the referenced method name.
static VALUE rdxr_method_reference_receiver(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
const struct CDeclaration *decl = rdx_method_reference_receiver_declaration(graph, data->id);
if (decl == NULL) {
return Qnil;
}
VALUE decl_class = rdxi_declaration_class_for_kind(decl->kind);
VALUE argv[] = {data->graph_obj, ULL2NUM(decl->id)};
free_c_declaration(decl);
return rb_class_new_instance(2, argv, decl_class);
}
Returns the resolved declaration for the receiver of the method call. Returns nil when the receiver is not a tracked constant or cannot be resolved.