aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_method.rb
Commit message (Collapse)AuthorAgeFilesLines
* Refined inspection of argument forwardingNobuyoshi Nakada2019-11-211-2/+4
|
* Add tests of argument forwarding's parameters and inspectKazuhiro NISHIYAMA2019-11-201-0/+5
|
* Update representation (discussed on ruby tracker)zverok2019-11-201-20/+20
|
* Method parameters inspectzverok2019-11-201-6/+63
| | | | | | | | | Example: def m(a, b=nil, *c, d:, e: nil, **rest, &block) end p method(:m) #=> #<Method: m(a, b=<default>, *c, d:, e: <default>, **rest, &block) ...>
* Deprecate taint/trust and related methods, and make the methods no-opsJeremy Evans2019-11-181-3/+0
| | | | | | This removes the related tests, and puts the related specs behind version guards. This affects all code in lib, including some libraries that may want to support older versions of Ruby.
* Revert "Method reference operator"Nobuyoshi Nakada2019-11-121-36/+0
| | | | | This reverts commit 67c574736912003c377218153f9d3b9c0c96a17b. [Feature #16275]
* remove `unused var` warningKoichi Sasada2019-10-011-0/+1
|
* Use assert_operator instead of mere assertNobuyoshi Nakada2019-09-301-2/+2
|
* Now `use_symbol` is always trueNobuyoshi Nakada2019-09-301-2/+2
|
* Emulate method_list (chkbuild) on test-all.Koichi Sasada2019-09-301-0/+41
| | | | | | | chkbuild (CI process) shows methods list before running tests and sometimes it can fails. This commit a code part to emulate this method listing feature.
* Allows calling a private method only with bare `self`Nobuyoshi Nakada2019-09-201-0/+1
|
* Allow calling a private method with `self.`Dylan Thacker-Smith2019-09-201-1/+1
| | | | | | | | | | This makes it consistent with calling private attribute assignment methods, which currently is allowed (e.g. `self.value =`). Calling a private method in this way can be useful when trying to assign the return value to a local variable with the same name. [Feature #11297] [Feature #16123]
* Make Method/Proc#parameters handle **nil syntaxJeremy Evans2019-08-301-0/+6
| | | | Use a [:nokey] entry in this case.
* Make the dot-colon method reference frozenMaciej Mensfeld2019-08-301-0/+13
| | | | | [Feature #16103] Close: https://github.com/ruby/ruby/pull/2267
* proc.c: Add UnboundMethod#bind_callYusuke Endoh2019-08-301-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | `umethod.bind_call(obj, ...)` is semantically equivalent to `umethod.bind(obj).call(...)`. This idiom is used in some libraries to call a method that is overridden. The added method does the same without allocation of intermediate Method object. [Feature #15955] ``` class Foo def add_1(x) x + 1 end end class Bar < Foo def add_1(x) # override x + 2 end end obj = Bar.new p obj.add_1(1) #=> 3 p Foo.instance_method(:add_1).bind(obj).call(1) #=> 2 p Foo.instance_method(:add_1).bind_call(obj, 1) #=> 2 ```
* Freeze method reference operator objectNobuyoshi Nakada2019-08-291-0/+4
| | | | [Feature #16103]
* Method#inspect with source location.Koichi Sasada2019-07-141-8/+8
| | | | | Method#inspect shows with source location. [Feature #14145]
* Hide internal IDsNobuyoshi Nakada2019-04-261-0/+5
| | | | | | | | * parse.y (internal_id): number the ID serial for internal use by counting down from the neary maximum value, not to accidentally match permanent IDs. [Bug #15768]
* range.c: force hash values fixablenobu2019-04-081-0/+1
| | | | | | | * range.c (method_hash): force hash values fixable on LLP64 environment. [ruby-core:92191] [Bug #15756] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: call respond_to_missing? with a symbolnobu2019-03-061-0/+16
| | | | | | [ruby-core:91683] [Bug #15640] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_method.rb: Remove unreachable callkazu2019-01-101-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: check if callablenobu2019-01-101-2/+2
| | | | | | | * proc.c: check the argument at composition, expect a Proc, Method, or callable object. [ruby-core:90591] [Bug #15428] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Method reference operatornobu2018-12-311-0/+19
| | | | | | | | Introduce the new operator for method reference, `.:`. [Feature #12125] [Feature #13581] [EXPERIMENTAL] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: do not kill RubyCI openSUSE machinek0kubun2018-12-271-0/+4
| | | | | | | | | | with NoMemoryError on TestMethod#test_splat_long_array. https://rubyci.org/logs/rubyci.s3.amazonaws.com/opensuseleap/ruby-trunk/log/20181227T080002Z.log.html.gz Maybe better to check /proc/meminfo instead of /etc/os-release. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Proc#<< and Proc#>>nobu2018-11-221-8/+11
| | | | | | [Feature #6284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: Support any callable when composing Procsnobu2018-11-221-3/+17
| | | | | | | | | | | | | | | | | | * proc.c (proc_compose): support any object with a call method rather than supporting only procs. [Feature #6284] * proc.c (compose): use the function call on the given object rather than rb_proc_call_with_block in order to support any object. * test/ruby/test_proc.rb: Add test cases for composing Procs with callable objects. * test/ruby/test_method.rb: Add test cases for composing Methods with callable objects. From: Paul Mucur <paul@altmetric.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: Implement Method#* for Method compositionnobu2018-11-221-0/+34
| | | | | | | | | | | * proc.c (rb_method_compose): Implement Method#* for Method composition, which delegates to Proc#*. * test/ruby/test_method.rb: Add test cases for Method composition. From: Paul Mucur <mudge@mudge.name> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: fix segfault when no singleton classnobu2018-04-031-0/+3
| | | | | | | | * proc.c (rb_obj_singleton_method): bail out if the receiver does not have the singleton class without accessing the origin class not to segfault. [Bug #14658] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix Kernel#singleton_method with Module#Prependnobu2018-04-031-0/+10
| | | | | | | | | * proc.c (rb_obj_singleton_method): search the method entry from the origin class, for fix prepended modules. [Bug #14658] From: Vasiliy Ermolovich <younash@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc: fix super_method segfault after bindnormal2018-01-301-0/+5
| | | | | | | | | * proc.c: handle undefined iclass [ruby-core:85231] [Bug #14421] From: Eric Wong <e@80x24.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Unneeded assertiona_matsuda2017-12-121-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add Method#=== that invokes #calla_matsuda2017-12-121-0/+6
| | | | | | Patch by osyo via [Feature #14142] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix backtrace on argment error.ko12017-11-091-0/+27
| | | | | | | | | | | * vm_backtrace.c (rb_backtrace_use_iseq_first_lineno_for_last_location): added. It modifies last location's line as corresponding iseq's first line number. * vm_args.c (raise_argument_error): use added function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: super_method of included methodnobu2017-10-061-0/+10
| | | | | | | | | | * proc.c (method_super_method): search the next super method along the included ancestor chain. [ruby-core:83114] [Bug #13973] * vm_method.c (rb_callable_method_entry_without_refinements): return the defined class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: infect inspect resultnobu2017-06-141-0/+3
| | | | | | | * proc.c (method_inspect): the result should be infected by the object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_method.rb: refined [ruby-core:81666] [Bug #13656]nobu2017-06-141-5/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: skip prepended modulesnobu2017-06-141-0/+11
| | | | | | | | * proc.c (method_super_method): skip prepended modules and continue from the super class of the original class. [ruby-core:81666] [Bug #13656] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: follow the original classnobu2016-10-251-0/+16
| | | | | | | * proc.c (mnew_internal): follow the original class, not to loop the prepended module. [ruby-core:77591] [Bug #12832] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* assertions.rb: set default internal encodingnobu2016-04-091-10/+6
| | | | | | | | | | * test/lib/test/unit/assertions.rb (assert_raise_with_message): set default internal encoding to the excpected message, which affects String#inspect in messages. * test/lib/test/unit/assertions.rb (assert_warning): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby: suppress parser warningsnobu2016-02-191-13/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (rb_mod_define_method): should check Symbol or not.ko12015-12-201-0/+14
| | | | | | | | | | | [Bug #11850] * test/ruby/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add frozen_string_literal: false for all filesnaruse2015-12-161-0/+1
| | | | | | When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c (rb_vm_cref_in_context): Module#define_method in non-classko12015-12-091-1/+3
| | | | | | | | | | | | expression should be public. [Bug #11754] * test/ruby/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c (vm_define_method): do not use current CREF immediately,ko12015-11-131-0/+17
| | | | | | | | | | | | | | | | but check CREF in environment or methods. Methods defined in methods should be public. [Bug #11571] * vm_method.c (rb_scope_module_func_check): check CREF in env or me. if CREF is contained by `me', then return FALSE. * test/ruby/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: remove unlinked method entry testnobu2015-10-021-12/+0
| | | | | | | * test/ruby/test_method.rb: remove test for unlinked method entry which is no longer vaild since r50728. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: finite loopnobu2015-10-021-8/+3
| | | | | | | * test/ruby/test_method.rb (test_unlinked_method_entry_in_method_object_bug): do not expect timeout as normal result. [Bug #8100] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: fix for uncallable methodnobu2015-08-071-0/+5
| | | | | | | | | | * proc.c (method_super_method): uncallable method entry does not have the defined class, use the owner instead. [ruby-core:70254] [Bug #11419] * test/ruby/test_method.rb (test_super_method_unbound): add test by Akira Matsuda. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_method.rb (TestMethod#test_{instance,define}_method): assumedusa2015-07-071-8/+12
| | | | | | | | | | default external is UTF-8. fixed failures introduced at r51175. * test/-ext-/symbol/test_type.rb (Test_Symbol::TestType#test_check_{id,symbol}_invalid_type): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* symbol.c: preserve encodingnobu2015-07-071-0/+11
| | | | | | | * symbol.c (rb_check_id, rb_check_symbol): preserve encoding of the given name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: remove rb_iseq_t::klass to reduce dynamic data.ko12015-07-061-5/+1
| | | | | | | | | | | | | | | | | | | | | | * internal.h, iseq.c (rb_iseq_klass): remove it because rb_iseq_t::klass is removed. * vm_insnhelper.c (vm_super_outside): do not see cfp->iseq, but check callable method entry on a frame. This fix simplify the logic to search super class. * test/ruby/test_method.rb: support super() from Proc. Now, [Bug #4881] and [Bug #3136] was solved. * proc.c (rb_mod_define_method): catch up this change. * vm.c (vm_define_method): ditto. * vm_backtrace.c (rb_profile_frames): now, each `frame' objects are rb_callable_method_entry_t data or iseq VALUEs. This fix introduce minor compatibility issue that rb_profile_frame_label() always returns rb_profile_frame_base_label(). * test/-ext-/debug/test_profile_frames.rb: catch up this change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e