From: "usa (Usaku NAKAMURA)" Date: 2013-06-06T12:23:04+09:00 Subject: [ruby-dev:47403] [ruby-trunk - Feature #3753] value of def-expr Issue #3753 has been updated by usa (Usaku NAKAMURA). Target version changed from next minor to current: 2.1.0 RubyKaigiのたびに思い出されるネタなわけですが、そういうわけで再浮上。 ---------------------------------------- Feature #3753: value of def-expr https://bugs.ruby-lang.org/issues/3753#change-39735 Author: usa (Usaku NAKAMURA) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) 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 -- http://bugs.ruby-lang.org/