1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

30 commits

Author SHA1 Message Date
nagachika
9c931b853b * vm_insnhelper.c (vm_search_superclass): avoid control frame
stack overrun. currently super() in Proc created in a method
  defined by Module#define_method raise NoMethodError. [Bug #4881]
* test/ruby/test_method.rb t_super_in_proc_from_define_method):
  add test for it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-25 15:05:37 +00:00
nagachika
5358a5c016 * eval.c (frame_func_id): __method__ return different name from
methods defined by Module#define_method with a same block.
    [ruby-core:35386] fixes #4606
  * eval (method_entry_of_iseq): new helper function. search control
    frame stack for a method entry which has given iseq.
  * test/ruby/test_method.rb: add tests for #4696

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 06:32:37 +00:00
nobu
fd7c5303eb * test/ruby/test_method.rb (TestMethod#test_define_method): method
transplanting between class and module is impossible.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-10 05:32:59 +00:00
nobu
b942e7891a * vm_insnhelper.c (vm_call_method): revert r30064 and r30071,
because of [ruby-core:26761]. Bug#4106 rejected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-03 23:25:19 +00:00
nobu
7b0b9df60e * vm_insnhelper.c (vm_call_method): protected methods should be
checked against the real class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-03 13:36:49 +00:00
nobu
adc978adc3 * vm_insnhelper.c (vm_call_method): protected singleton methods should
be visible from same real class methods.  [ruby-core:33506]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-03 03:17:22 +00:00
naruse
ad717fa7e6 * vm_method.c (rb_method_boundp): revert r28543, r28564.
They may be merged in Ruby 2.0. [ruby-core:31217]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-21 05:00:53 +00:00
knu
42f4a548f0 * vm_method.c (rb_method_boundp): respond_to?(:protected_method,
true) should return true.  Pointed out by Marc-Andre Lafortune.
  [ruby-dev:41837]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-07 04:06:32 +00:00
knu
78a78b45d6 * vm_method.c (rb_method_boundp): Return false for protected
methods when called from Kernel#respond_to?. [ruby-dev:40461]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-05 07:11:44 +00:00
nobu
c0ea75f966 * test/ruby/test_method.rb (test_public_methods_with_extended): test for [ruby-dev:41553].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-12 02:58:47 +00:00
mame
56036e3514 * vm_eval.c (rb_f_caller): return [] instead of nil when the function
is called on toplevel.  [ruby-dev:41348]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 11:18:12 +00:00
mame
bebd7e4511 * test/ruby/test_array.rb: add a test for Array#rotate, rotate!.
* test/ruby/test_dir.rb, test/ruby/test_fnmatch.rb: add some tests
  (for coverage of dir.c).

* test/ruby/test_enum.rb: add a test for Enumerable#minmax.

* test/ruby/test_enumerator.rb: add some tests for Enumerator#inspect,
  Enumerator::Generator and Yielder.

* test/ruby/test_env.rb: add a test for ENV#index.

* test/ruby/test_exception.rb: add some tests (for coverage of
  error.c).

* test/ruby/test_hash.rb: add a test for recursive check.

* test/ruby/test_integer.rb: add a test for number of argument of
  Integer.

* test/ruby/test_method.rb: add a test for define_method.

* test/ruby/test_module.rb: add a test for constant of included
  module.

* test/ruby/test_proc.rb: add a test for parameters with cfunc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-22 15:03:32 +00:00
mame
8e8bb6c173 * proc.c (mnew): don't check visibility of method body if public
ZSUPER method is found.  [ruby-dev:39767]

* test/ruby/test_method.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-08 14:40:38 +00:00
nobu
e6a8408c2c * iseq.c (iseq_s_disasm): return nil for native methods.
[ruby-core:27226], [Bug#2499]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-23 06:22:48 +00:00
ko1
9050b61dcb * proc.c (rb_method_entry_arity): support optimized method (send).
* test/ruby/test_method.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-28 10:41:11 +00:00
nobu
e4917c6dcb * test/ruby/test_{proc,method}.rb: updated tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13 09:10:28 +00:00
nobu
46e3b0fe7b * iseq.c (simple_default_value): extracts simplest default
argument value.

* iseq.c (rb_iseq_parameters): returns parameter list.

* proc.c (get_proc_iseq, get_method_iseq): handles ifunc and
  bmethod.

* proc.c (rb_proc_parameters, rb_method_parameters): added
  Proc#parameters and Method#parameters.  [ruby-core:19759]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-28 04:19:37 +00:00
yugui
31c8291618 * test/ruby/test_method.rb (TestMethod#test_default_accessibility):
fixed a wrong expectation in the test case.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-22 14:41:55 +00:00
yugui
ab8114f481 * test/ruby/test_method.rb (test_default_accessiblity): test case for
[ruby-dev:37124].



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-22 12:34:21 +00:00
mame
eafe85f603 * test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err): new
method.

* test/ruby/test_argf.rb: use assert_in_out_err instead of
  EnvUtil.rubyexec.

* test/ruby/test_module.rb: ditto.

* test/ruby/test_require.rb: ditto.

* test/ruby/test_objectspace.rb: ditto.

* test/ruby/test_object.rb: ditto.

* test/ruby/test_string.rb: ditto.

* test/ruby/test_method.rb: ditto.

* test/ruby/test_variable.rb: ditto.

* test/ruby/test_io.rb: ditto.

* test/ruby/test_rubyoptions.rb: ditto.

* test/ruby/test_exception.rb: ditto.

* test/ruby/test_class.rb: ditto.

* test/ruby/test_thread.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-15 15:26:04 +00:00
ko1
9ebf6473eb * vm.c, vm_core.h,vm_core.h, vm_dump.c, iseq.c: rename class name
VM -> RubyVM, and rename rb_cVM -> rb_cRubyVM.
  "VM" is too short name for class.
* test/ruby/test_method.rb, test/ruby/test_settracefunc.rb: ditto.
* include/ruby/ruby.h: rb_cRubyVM, rb_cEnv, rb_cISeq should not be
  exposed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29 17:26:16 +00:00
mame
10451cd8d4 * test/ruby/test_method.rb: add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-02 16:22:47 +00:00
mame
f09f597422 * test/ruby/test_object.rb: new tests to achieve over 90% test
coverage of object.c, eval.c and eval_method.c.

* test/ruby/test_module.rb: ditto.

* test/ruby/test_trace.rb: ditto.

* test/ruby/test_integer.rb: ditto.

* test/ruby/test_float.rb: ditto.

* test/ruby/test_method.rb: ditto.

* test/ruby/test_variable.rb: ditto.

* test/ruby/test_eval.rb: ditto.

* test/ruby/test_exception.rb: ditto.

* test/ruby/test_class.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-14 12:52:17 +00:00
kazu
7467524ca2 fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-11 10:53:52 +00:00
kazu
4273476265 add tests of UnboundMethod#{name,owner}
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-11 01:40:30 +00:00
matz
3d751cde0f * proc.c (method_name): should return symbols instead of strings.
[ruby-dev:34531]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-28 02:12:21 +00:00
mame
a707f6249f * eval.c (eval): allow to eval in a binding that has a singleton method.
[ruby-dev:33763]

* test/ruby/test_proc.rb: add tests to achieve over 70% test coverage
  of time.c.

* test/ruby/test_method.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-13 15:03:59 +00:00
nobu
69dd06ae68 * eval.c (frame_func_id): return proper method ID.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-17 16:12:03 +00:00
ko1
75d28f8870 * yarvcore.h, compile.c (set_arguments): support post arguments.
* test/ruby/test_method.rb: add tests for above.
* test/ruby/test_proc.rb: ditto.
* proc.c: fix an arity bug ([ruby-core:11029]).
* vm.c, vm.h, insns.def, vm_dump.h: fix bmethod process.
* vm.c: support block argument on block parameter.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 04:35:58 +00:00
nahi
f613a10f5e * test/ruby/test_method.rb: added. [ruby-dev:26761]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-08 11:43:56 +00:00