Issue #3753 has been updated by usa (Usaku NAKAMURA).
Status changed from Closed to Assigned
% Done changed from 100 to 50
=begin
``define_method()‘’ と書かれると迷いが生じるんですが、Module#define_method
が意図されていたということでいいんでしょうか?
で、あれば、こんなもんかと思うんですが、こちらはまだ入れてません。
Index: proc.c
— proc.c (リビジョン 42336)
+++ proc.c (作業コピー)
@@ -1510,7 +1510,7 @@ rb_mod_define_method(int argc, VALUE *ar
rb_raise(rb_eTypeError, “wrong argument type (expected
Proc/Method)”);
}
- return body;
- return ID2SYM(id);
}
/*
=end
Feature #3753: value of def-expr
Author: usa (Usaku NAKAMURA)
Status: Assigned
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: core
Target version: current: 2.1.0
=begin
RubyKaigi見てて思い出したのですが、def式はSymbolを返すようにしませんか?
そうすると、
class Foo
private def foo()
# …
end
end
などと書けるようになります。
以下パッチ。
Index: vm.c
— vm.c (リビジョン 29124)
+++ vm.c (作業コピー)
@@ -1893,7 +1893,7 @@ m_core_define_method(VALUE self, VALUE c
REWIND_CFP({
vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 0,
rb_vm_cref());
});
- return Qnil;
- return sym;
}
static VALUE
@@ -1902,7 +1902,7 @@ m_core_define_singleton_method(VALUE sel
REWIND_CFP({
vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 1,
rb_vm_cref());
});
- return Qnil;
- return sym;
}
static VALUE
=end