Bug #7722
closed[rubyspec] failure in core/marshal/dump_spec.rb
Description
=begin
Since r38118, (({test-rubyspect})) fails in ((%rubyspec/core/marshal/dump_spec.rb%)).
-
Before r38117
$ export MSPECOPT='-e "Marshal.dump with an Object dumps a BasicObject subclass if it defines respond_to?" core/marshal/dump_spec.rb'
$ make test-rubyspec
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./spec/mspec/bin/mspec run -B ./spec/default.mspec -e "Marshal.dump with an Object dumps a BasicObject subclass if it defines respond_to?" core/marshal/dump_spec.rb
ruby 2.0.0dev (2012-12-01 trunk 38117) [x86_64-darwin11.4.2]
.Finished in 0.045351 seconds
1 file, 1 example, 1 expectation, 0 failures, 0 errors
-
After r38117
$ make test-rubyspec
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./spec/mspec/bin/mspec run -B ./spec/default.mspec -e "Marshal.dump with an Object dumps a BasicObject subclass if it defines respond_to?" core/marshal/dump_spec.rb
ruby 2.0.0dev (2012-12-01 trunk 38118) [x86_64-darwin11.4.2]
EMarshal.dump with an Object dumps a BasicObject subclass if it defines respond_to? ERROR
ArgumentError: wrong number of arguments (2 for 1)
/tmp/ruby/trunk/feature-6539/spec/rubyspec/core/marshal/fixtures/marshal_data.rb:158:inrespond_to?' /tmp/ruby/trunk/feature-6539/spec/rubyspec/core/marshal/dump_spec.rb:397:in
dump'
/tmp/ruby/trunk/feature-6539/spec/rubyspec/core/marshal/dump_spec.rb:397:inblock (4 levels) in <top (required)>' /tmp/ruby/trunk/feature-6539/spec/rubyspec/core/marshal/dump_spec.rb:5:in
<top (required)>'Finished in 0.045077 seconds
1 file, 1 example, 0 expectations, 0 failures, 1 error
make: *** [test-rubyspec] Error 1
r38118 changes to call (({respond_to?})) method with ((|include_all|)) as (({true})), so
that private methods can be found, cf. [Feature #6539]
The choces what I can thought out are:
(1) change RubySpect to take the flag as a rest argument
(2) reject [Feature #6539]
(3) call respond_to? according to its arity
Attach the patches for (3).
=end
Files
Updated by nobu (Nobuyoshi Nakada) almost 12 years ago
- Description updated (diff)
Updated by ko1 (Koichi Sasada) almost 12 years ago
- Priority changed from Normal to 6
- Target version set to 2.0.0
Updated by matz (Yukihiro Matsumoto) almost 12 years ago
I am not that confident that I understand all the detail, but I vote for drop include_all flags.
Matz.
Updated by marcandre (Marc-Andre Lafortune) almost 12 years ago
The issue is that rb_obj_respond_to
sends a second argument (include private) even when the user method doesn't accept one.
It should be fixed to only send one in those cases.
This is exactly what check_funcall_respond_to
does already.
Both functions should probably be refactored.
Updated by nobu (Nobuyoshi Nakada) almost 12 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r39069.
Nobuyoshi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
vm_method.c: drop include_all flag
- vm_method.c (rb_obj_respond_to): drop optional include_all flag if
respond_to? method is defined in old style. [Bug #7722]