Skip to content

Commit

Permalink
Ripper#validate_object: check if the object is hidden
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Jul 18, 2019
1 parent 0b82641 commit fd461de
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions parse.y
Expand Up @@ -12487,7 +12487,7 @@ ripper_validate_object(VALUE self, VALUE x)
if (x == Qtrue) return x;
if (x == Qnil) return x;
if (x == Qundef)
rb_raise(rb_eArgError, "Qundef given");
rb_raise(rb_eArgError, "Qundef given");
if (FIXNUM_P(x)) return x;
if (SYMBOL_P(x)) return x;
switch (BUILTIN_TYPE(x)) {
Expand All @@ -12498,15 +12498,20 @@ ripper_validate_object(VALUE self, VALUE x)
case T_FLOAT:
case T_COMPLEX:
case T_RATIONAL:
return x;
break;
case T_NODE:
if (nd_type((NODE *)x) != NODE_RIPPER) {
rb_raise(rb_eArgError, "NODE given: %p", (void *)x);
}
return ((NODE *)x)->nd_rval;
x = ((NODE *)x)->nd_rval;
break;
default:
rb_raise(rb_eArgError, "wrong type of ruby object: %p (%s)",
(void *)x, rb_obj_classname(x));
rb_raise(rb_eArgError, "wrong type of ruby object: %p (%s)",
(void *)x, rb_obj_classname(x));
}
if (!RBASIC_CLASS(x)) {
rb_raise(rb_eArgError, "hidden ruby object: %p (%s)",
(void *)x, rb_builtin_type_name(TYPE(x)));
}
return x;
}
Expand Down

0 comments on commit fd461de

Please sign in to comment.