aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_method.rb
Commit message (Collapse)AuthorAgeFilesLines
* 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
* test_method.rb: fix commit missnobu2015-06-191-0/+1
| | | | | | | * test/ruby/test_method.rb (test_define_singleton_method_no_proc): fix missing object. [Bug #11283] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: ArgumentError if no blocknobu2015-06-191-2/+15
| | | | | | | * proc.c (rb_mod_define_method): now requires a block direct to this method call. [ruby-core:69655] [Bug #11283] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: split testnobu2015-06-191-1/+6
| | | | | | | * test/ruby/test_method.rb (test_define_singleton_method): split and fix test names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: $SAFE=3 is now obsolete.hsbt2015-06-171-13/+0
| | | | | | | | | | | * ext/socket/init.c, ext/socket/socket.c, ext/socket/tcpsocket.c ext/socket/udpsocket.c, gc.c, object.c, re.c, safe.c: removed code for $SAFE=3 * bootstraptest/test_method.rb, test/erb/test_erb.rb, test/ruby/test_dir.rb test/ruby/test_file.rb, test/ruby/test_method.rb, test/ruby/test_regexp.rb test/ruby/test_thread.rb: remove tests for $SAFE=3 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h: make rb_method_entry_t a VALUE.ko12015-06-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation and new data structure are described in [Bug #11203]. This patch also solve the following issues. * [Bug #11200] Memory leak of method entries * [Bug #11046] __callee__ returns incorrect method name in orphan proc * test/ruby/test_method.rb: add a test for [Bug #11046]. * vm_core.h: remvoe rb_control_frame_t::me. me is located at value stack. * vm_core.h, gc.c, vm_method.c: remove unlinked_method... codes because method entries are simple VALUEs. * method.h: Now, all method entries has own independent method definititons. Strictly speaking, this change is not essential, but for future changes. * rb_method_entry_t::flag is move to rb_method_definition_t::flag. * rb_method_definition_t::alias_count is now rb_method_definition_t::alias_count_ptr, a pointer to the counter. * vm_core.h, vm_insnhelper.c (rb_vm_frame_method_entry) added to search the current method entry from value stack. * vm_insnhelper.c (VM_CHECK_MODE): introduced to enable/disable assertions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: add assertionnobu2015-05-211-0/+1
| | | | | | | * test/ruby/test_method.rb (test_to_proc_binding): assertion for dynamically set variable names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c: fix issues caused by binding created from Method#to_proc.ko12015-05-211-9/+17
| | | | | | | | | | [Bug #11163] * vm.c (vm_cref_new_toplevel): export as rb_vm_cref_new_toplevel(). * test/ruby/test_method.rb: add some assersions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: replicate method envnobu2015-03-291-0/+14
| | | | | | | | * proc.c (proc_binding): replicate env from method object, and allocate the local variable area for the iseq local table. [ruby-core:68673] [Bug #11012] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_method.rb: Add test for &-coersion of anheadius2015-01-061-0/+9
| | | | | | | | UnboundMethod. * test/ruby/test_module.rb: Add test for define_method given an UnboundMethod. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: preserve encodingnobu2014-11-251-0/+13
| | | | | | | | | * vm_eval.c (rb_method_call_status): preserve encoding of called method name in error messages. * vm_insnhelper.c (vm_call_method): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/lib/envutil.rb: Moved from test/ruby/.akr2014-11-131-1/+0
| | | | | | | | | | | | | | * test/lib/find_executable.rb: Ditto. * test/lib/memory_status.rb: Ditto. * test/lib/test/unit.rb: require envutil. * test/: Don't require envutil in test files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_method.rb: r48239 makes this test green.ko12014-11-021-0/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: method_super_methodnobu2014-07-261-0/+50
| | | | | | | | | * proc.c (method_super_method): new method Method#super_method, which returns a method object of the method to be called by `super` in the receiver method object. [ruby-core:62202] [Feature #9781] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: Implement Method#currynobu2014-06-191-0/+51
| | | | | | | * proc.c (rb_method_curry): Implement Method#curry, which delegates to to_proc.curry. [ruby-core:62212] [Feature #9783] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_eval.c (eval_string_with_cref): Use file path even if scope issorah2014-03-181-0/+1
| | | | | | given. Related to [ruby-core:56099] [Bug #8662] and r42103. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: fix parameter of unnamed rest keywords argumentnobu2013-12-251-0/+29
| | | | | | | * iseq.c (rb_iseq_parameters): push argument type symbol only for unnamed rest keywords argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: fix arity of rest keywords argumentnobu2013-12-251-0/+21
| | | | | | | * proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if having rest keywords argument. [ruby-core:53298] [Bug #8072] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb, test_proc.rb: suppress warningsnobu2013-12-251-3/+4
| | | | | | | | * test/ruby/test_method.rb: suppress warnings in verbose mode. * test/ruby/test_proc.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: fix testnobu2013-12-241-1/+1
| | | | | | | * test/ruby/test_method.rb (test_define_method_in_private_scope): remove extra *, to get the argument itself. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: make method by define_method publicnobu2013-12-241-0/+23
| | | | | | | | | | | * proc.c (rb_mod_define_method): consider visibility only if self in the caller is same as the receiver, otherwise make public as well as old behavior. [ruby-core:57747] [Bug #9005] [ruby-core:58497] [Bug #9141] * vm.c (rb_vm_cref_in_context): return ruby level cref if self is same. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: method by respond_to_missing?nobu2013-12-141-0/+11
| | | | | | | * proc.c (mnew_from_me): method by respond_to_missing? should be owned by the original class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: fix inherited ownernobu2013-12-131-0/+9
| | | | | | | | | * proc.c (mnew_from_me): achieve the original defined_class from prepended iclass, to fix inherited owner. * proc.c (method_owner): return the defined class, but not the class which the method object is created from. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c, vm_method.c: fix super and aliasnobu2013-12-131-1/+7
| | | | | | | | | | | * proc.c (method_owner): return the class where alias is defined, not the class original method is defined. * vm_method.c (rb_method_entry_make, rb_alias): store the originally defined class in me. [Bug #7993] [Bug #7842] [Bug #9236] * vm_method.c (rb_method_entry_get_without_cache): cache included module but not iclass. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby: better assertionsnobu2013-12-131-9/+11
| | | | | | * test/ruby: use better assertions instead of mere assert. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_class_inherited_p): allow iclasses to be tested forcharliesome2013-08-051-0/+16
| | | | | | | | inheritance. [Bug #8686] [ruby-core:56174] * test/ruby/test_method.rb: add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: use file argumentnobu2013-07-221-0/+2
| | | | | | | | * vm_eval.c (eval_string_with_cref): use the given file name unless eval even if scope is given. additional fix for [Bug #8436]. based on the patch by srawlins at [ruby-core:56099] [Bug #8662]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: __dir__ in evalnobu2013-06-141-0/+2
| | | | | | | | * vm_eval.c (eval_string_with_cref): propagate absolute path from the binding if it is given explicitly. patch by Gat (Dawid Janczak) at [ruby-core:55123]. [Bug #8436] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: use realpathnobu2013-06-141-1/+1
| | | | | | | * test/ruby/test_method.rb (TestMethod#test___dir__): $LOAD_PATH entries are expanded to real paths. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * safe.c (rb_set_safe_level, safe_setter): raise an ArgumentErrorshugo2013-06-121-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when $SAFE is set to 4. $SAFE=4 is now obsolete. [ruby-core:55222] [Feature #8468] * object.c (rb_obj_untrusted, rb_obj_untrust, rb_obj_trust): Kernel#untrusted?, untrust, and trust are now deprecated. Their behavior is same as tainted?, taint, and untaint, respectively. * include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED() and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(), respectively. * array.c, class.c, debug.c, dir.c, encoding.c, error.c, eval.c, ext/curses/curses.c, ext/dbm/dbm.c, ext/dl/cfunc.c, ext/dl/cptr.c, ext/dl/dl.c, ext/etc/etc.c, ext/fiddle/fiddle.c, ext/fiddle/pointer.c, ext/gdbm/gdbm.c, ext/readline/readline.c, ext/sdbm/init.c, ext/socket/ancdata.c, ext/socket/basicsocket.c, ext/socket/socket.c, ext/socket/udpsocket.c, ext/stringio/stringio.c, ext/syslog/syslog.c, ext/tk/tcltklib.c, ext/win32ole/win32ole.c, file.c, gc.c, hash.c, io.c, iseq.c, load.c, marshal.c, object.c, proc.c, process.c, random.c, re.c, safe.c, string.c, thread.c, transcode.c, variable.c, vm_insnhelper.c, vm_method.c, vm_trace.c: remove code for $SAFE=4. * test/dl/test_dl2.rb, test/erb/test_erb.rb, test/readline/test_readline.rb, test/readline/test_readline_history.rb, test/ruby/test_alias.rb, test/ruby/test_array.rb, test/ruby/test_dir.rb, test/ruby/test_encoding.rb, test/ruby/test_env.rb, test/ruby/test_eval.rb, test/ruby/test_exception.rb, test/ruby/test_file_exhaustive.rb, test/ruby/test_hash.rb, test/ruby/test_io.rb, test/ruby/test_method.rb, test/ruby/test_module.rb, test/ruby/test_object.rb, test/ruby/test_pack.rb, test/ruby/test_rand.rb, test/ruby/test_regexp.rb, test/ruby/test_settracefunc.rb, test/ruby/test_struct.rb, test/ruby/test_thread.rb, test/ruby/test_time.rb: remove tests for $SAFE=4. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: fix for direct invocationnobu2013-05-271-1/+1
| | | | | | | * test/ruby/test_method.rb (TestMethod#test___dir__): use aboslute path for the case invoked directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: Kernel#singleton_methodnobu2013-05-131-0/+12
| | | | | | | | | | | * proc.c (rb_obj_singleton_method): new method Kernel#singleton_method which returns a Method object of the singleton method. non-singleton method causes NameError, but not aliased or zsuper method, right now. [ruby-core:54914] [Feature #8391] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: consider noex in define_methodnobu2013-03-311-0/+32
| | | | | | | * proc.c (rb_mod_define_method): consider visibility in define_method. patch by mashiro <mail AT mashiro.org>. fix GH-268. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: splitnobu2013-03-311-0/+4
| | | | | | * test/ruby/test_method.rb (test_define_method): split for each tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_method.rb: refine assertionsnobu2013-03-251-3/+7
| | | | | | | | * test/ruby/test_method.rb (test_unlinked_method_entry_in_method_object_bug): use assert_normal_exit since subject code never exit successfully, but check if timed out paranoically. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e