ひとり勉強会

ひとり楽しく勉強会

NODE_UNDEF

undef メソッド名

一度定義したメソッドを取り消す処理です。わたし、aliasとundefの存在は今日始めて知りました。(^_^; こんなのあったんですね。

case NODE_UNDEF:{
  if (nd_type(node->u2.node) != NODE_LIT) {
    rb_bug("undef args must be NODE_LIT");
  }
  ADD_INSN1(ret, nd_line(node), undef,
    ID2SYM(rb_to_id(node->u2.node->nd_lit)));
  if (!poped) {
    ADD_INSN(ret, nd_line(node), putnil);
  }
  break;
}

コンパイルは、これも単純にYARVのundef命令への変換です。