summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-02 14:58:11 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-02 14:58:11 +0000
commit0f0b60ea86af7fd9db03639a8a92d63a49e94f24 (patch)
tree4bfdc07284c33030c6608b87841c9386ddd3bb8f
parent5339293fb868a0273507f6f9de705b2babd8dad5 (diff)
* vm.c (m_core_define_method, m_core_define_singleton_method): now
the value of def-expr is the Symbol of the name of the method, not nil. ref. [ruby-dev:42151] [Feature #3753] * test/ruby/test_syntax.rb (TestSyntax#test_value_of_def): test for above changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--test/ruby/test_syntax.rb7
-rw-r--r--vm.c4
3 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c34231..c9ddbf8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Fri Aug 2 23:57:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * vm.c (m_core_define_method, m_core_define_singleton_method): now
+ the value of def-expr is the Symbol of the name of the method, not
+ nil.
+ ref. [ruby-dev:42151] [Feature #3753]
+
+ * test/ruby/test_syntax.rb (TestSyntax#test_value_of_def): test for
+ above changes.
+
Fri Aug 2 23:54:11 2013 Masaki Matsushita <glass.saga@gmail.com>
* array.c (rb_ary_zip): performance improvement by avoiding
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 9daa0e4..9947069 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -370,6 +370,13 @@ eom
end
end
+ def test_value_of_def
+ assert_separately [], <<-EOS
+ assert_equal(:foo, (def foo; end))
+ assert_equal(:foo, (def (Object.new).foo; end))
+ EOS
+ end
+
private
def not_label(x) @result = x; @not_label ||= nil end
diff --git a/vm.c b/vm.c
index 8e01a17..3150ee8 100644
--- a/vm.c
+++ b/vm.c
@@ -2052,7 +2052,7 @@ m_core_define_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval)
REWIND_CFP({
vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 0, rb_vm_cref());
});
- return Qnil;
+ return sym;
}
static VALUE
@@ -2061,7 +2061,7 @@ m_core_define_singleton_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval
REWIND_CFP({
vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 1, rb_vm_cref());
});
- return Qnil;
+ return sym;
}
static VALUE