mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
merge revision(s) 25975:
* eval.c (proc_invoke): unbound block created by define_method cannot call super. [ruby-core:26984] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@26091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b9d74fd1c1
commit
fd13ad8cdc
4 changed files with 28 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
Mon Dec 14 12:35:21 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* eval.c (proc_invoke): unbound block created by define_method
|
||||
cannot call super. [ruby-core:26984]
|
||||
|
||||
Mon Dec 14 12:06:39 2009 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* ext/digest/digest.c (rb_digest_instance_method_unimpl): Do not
|
||||
|
|
3
eval.c
3
eval.c
|
@ -8872,7 +8872,8 @@ proc_invoke(proc, args, self, klass)
|
|||
_block = *data;
|
||||
_block.block_obj = bvar;
|
||||
if (self != Qundef) _block.frame.self = self;
|
||||
if (klass) _block.frame.last_class = klass;
|
||||
_block.frame.last_class = klass;
|
||||
if (!klass) _block.frame.last_func = 0;
|
||||
_block.frame.argc = RARRAY(tmp)->len;
|
||||
_block.frame.flags = ruby_frame->flags;
|
||||
if (_block.frame.argc && DMETHOD_P()) {
|
||||
|
|
|
@ -126,9 +126,27 @@ class TestSuper < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_define_method # [ruby-core:03856]
|
||||
class B
|
||||
def m
|
||||
[self, "#{self.class.to_s}::m"]
|
||||
end
|
||||
end
|
||||
|
||||
class C < B
|
||||
def self.t
|
||||
define_method(:m) {super}
|
||||
end
|
||||
end
|
||||
|
||||
def test_define_method
|
||||
a = A.new
|
||||
a.uu(12)
|
||||
assert_equal("A#tt", a.tt(12))
|
||||
assert_equal("A#tt", a.tt(12), '[ruby-core:03856]')
|
||||
|
||||
bug2419 = '[ruby-core:26984]'
|
||||
q = C.t
|
||||
assert_raise(NoMethodError, bug2419) {q.call}
|
||||
c = C.new
|
||||
assert_equal([c, "#{C.to_s}::m"], c.m, bug2419)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define RUBY_RELEASE_DATE "2009-12-14"
|
||||
#define RUBY_VERSION_CODE 187
|
||||
#define RUBY_RELEASE_CODE 20091214
|
||||
#define RUBY_PATCHLEVEL 234
|
||||
#define RUBY_PATCHLEVEL 235
|
||||
|
||||
#define RUBY_VERSION_MAJOR 1
|
||||
#define RUBY_VERSION_MINOR 8
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue