APIdock / Ruby
/
method

validate_object

ruby latest stable - Class: Object
validate_object(p1)
public

No documentation available.

static VALUE
ripper_validate_object(VALUE self, VALUE x)
{
 if (x == Qfalse) return x;
 if (x == Qtrue) return x;
 if (x == Qnil) return x;
 if (x == Qundef)
 rb_raise(rb_eArgError, "Qundef given");
 if (FIXNUM_P(x)) return x;
 if (SYMBOL_P(x)) return x;
 if (!rb_is_pointer_to_heap(x))
 rb_raise(rb_eArgError, "invalid pointer: %p", x);
 switch (BUILTIN_TYPE(x)) {
 case T_STRING:
 case T_OBJECT:
 case T_ARRAY:
 case T_BIGNUM:
 case T_FLOAT:
 case T_COMPLEX:
 case T_RATIONAL:
 return x;
 case T_NODE:
 if (nd_type(x) != NODE_RIPPER) {
 rb_raise(rb_eArgError, "NODE given: %p", x);
 }
 return ((NODE *)x)->nd_rval;
 default:
 rb_raise(rb_eArgError, "wrong type of ruby object: %p (%s)",
 x, rb_obj_classname(x));
 }
 return x;
}

AltStyle によって変換されたページ (->オリジナル) /