aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_module.rb
Commit message (Collapse)AuthorAgeFilesLines
* * class.c (include_modules_at): invalidate method cache if includedcharliesome2013-06-081-0/+20
| | | | | | | | module contains constants * test/ruby/test_module.rb: add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (set_const_visibility): use rb_frame_this_func() insteadcharliesome2013-05-241-0/+9
| | | | | | | | of rb_frame_callee() for getting the name of the called method * test/ruby/test_module.rb: add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: include modules onlynobu2013-05-081-1/+9
| | | | | | | * class.c (rb_mod_included_modules): should not include non-modules. [ruby-core:53158] [Bug #8025] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: exclude original modulenobu2013-05-081-0/+7
| | | | | | | * class.c (rb_mod_included_modules): should not include the original module itself. [ruby-core:53158] [Bug #8025] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: skip prepending modulesnobu2013-05-021-2/+9
| | | | | | | | | * object.c (rb_obj_is_kind_of): skip prepending modules. [ruby-core:54742] [Bug #8357] * object.c (rb_class_inherited_p): ditto. [ruby-core:54736] [Bug #8357] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_inspect): refix r40413, on Ruby 1.9 usual characternaruse2013-04-231-2/+2
| | | | | | | escape uses hex/Unicode escapes, so fix to use Unicode escape on Unicode strings and hex on others. [ruby-core:54458] [Bug #8290] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_module.rbknu2013-04-231-2/+2
| | | | | | | (TestModule#test_const_get_invalid_name) (test_const_defined_invalid_name): Fix expected values. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_module.rb: renamenobu2013-04-191-1/+1
| | | | | | | | * test/ruby/test_module.rb (test_visibility_by_public_class_method): rename because anonymousness is not a point. [ruby-core:54404] [Bug #8284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: fix visibility on anonymous modulenobu2013-04-181-0/+7
| | | | | | | | * vm_method.c (rb_mod_public_method): fix visibility on anonymous module. set visibility of singleton method, not method in base class. [ruby-core:54404] [Bug #8284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Suppress warningsnaruse2013-04-081-6/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_obj_ivar_set): call to_str for string only once.naruse2013-04-081-0/+38
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_mod_cvar_set): call to_str for string only once.naruse2013-04-071-0/+2
| | | | | | to_str was called from rb_is_class_name and rb_to_id before. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: avoid inadvertent symbol creationnobu2013-04-041-0/+8
| | | | | | * object.c (rb_mod_cvar_set): fix typo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_class.rb: Simplify warning checksmarcandre2013-03-301-26/+13
| | | | | | | | | | * test/ruby/test_io.rb: ditto * test/ruby/test_module.rb: ditto * test/ruby/test_regexp.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: overrid flag of prepending methodnobu2013-03-131-0/+12
| | | | | | | | * vm_method.c (rb_export_method): directly override the flag of method defined in prepending class too, not adding zsuper entry. [ruby-core:53106] [Bug #8005] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (rb_mod_ancestors): Include singleton_class in ancestors listmarcandre2013-03-071-0/+14
| | | | | | | | | | | | [Feature #8035] * test/ruby/test_module.rb (class): test for above * test/ruby/marshaltestlib.rb (module): adapt test * NEWS: list change git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: check redefinitionnobu2013-03-051-0/+14
| | | | | | | | | * class.c (rb_prepend_module): check redefinition of built-in opimized methods. [ruby-dev:47124] [Bug #7983] * vm.c (rb_vm_check_redefinition_by_prepend): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: cyclic prependnobu2013-02-141-0/+10
| | | | | | | * class.c (include_modules_at): detect cyclic prepend with original method table. [ruby-core:52205] [Bug #7841] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: fix method_removednobu2013-02-141-1/+1
| | | | | | | * vm_method.c: call method_removed hook on called class, not on prepending iclass. [ruby-core:52207] [Bug #7843] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: fix method_removednobu2013-02-141-2/+17
| | | | | | | * vm_method.c: call method_removed hook on called class, not on prepending iclass. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (defineclass): private constants should not be accessedshugo2013-01-111-0/+20
| | | | | | | | by scoped module definitions. The bug was introduced in r38495. * test/ruby/test_module.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (Init_eval_method): main.public and main.privateshugo2013-01-071-14/+14
| | | | | | | | | | should be private. * proc.c (Init_Proc): main.define_method should be private. * test/ruby/test_module.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (Init_eval): main.include should be private.shugo2013-01-071-0/+19
| | | | | | | | | [ruby-core:51293] [Bug #7670] * test/ruby/test_module.rb (test_top_include_is_private): a new test for the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (rb_mod_remove_const): fix segv caused by r38558.naruse2012-12-271-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h: quote unprintablenobu2012-12-221-2/+6
| | | | | | | | | * internal.h (QUOTE, QUOTE_ID): quote unprintable chars in strings and IDs. [Bug #7574] [ruby-dev:46749] * string.c (rb_str_quote_unprintable): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: no nested symbolnobu2012-12-221-2/+3
| | | | | | * object.c (rb_mod_const_get): symbol cannot be nested constant name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: check more strictlynobu2012-12-221-2/+3
| | | | | | | * object.c (rb_mod_const_get): check more strictly. [ruby-dev:46748] [Bug #7573] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: nul in const namenobu2012-12-191-0/+9
| | | | | | * object.c (rb_mod_const_get): nul byte is invalid as constant name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: no warnings for non-objectnobu2012-12-121-0/+63
| | | | | | | | * vm_insnhelper.c (vm_getivar): no uninitialized instance variables warnings for non-object if attr method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_mod_const_get): Fix constant missing exception classtenderlove2012-11-061-0/+18
| | | | | | | | | and message to maintain backwards compatibility. Constant search should start at Object when constant starts with '::' * test/ruby/test_module.rb: test for fixes git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_mod_const_get): const_get accepts qualified constanttenderlove2012-10-261-0/+30
| | | | | | | | strings. e.g. Object.const_get("Foo::Bar::Baz") [ruby-core:41404] * test/ruby/test_module.rb: tests for new behavior git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* adding test coverage for invalid attribute namestenderlove2012-08-271-0/+13
| | | | | | Fixes #171 on github git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: iclass as klass in cfpnobu2012-08-201-0/+54
| | | | | | | | | * vm_insnhelper.c (vm_call_method): follow iclasses as klass in cfp but not included modules. [ruby-core:47241] [Bug #6891] * vm_insnhelper.c (vm_call_bmethod): pass defined_class to follow proper ancestors. [ruby-core:47241] [Bug #6891] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_module.rb: workaround for ruby-mode.elnobu2012-08-201-1/+1
| | | | | | | | * test/ruby/test_module.rb (TestModule#test_undef): get rid of confusing ruby-mode.el by mixing special characters in //. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: fix duplication of prepended modulenobu2012-07-311-0/+9
| | | | | | | | | * class.c (include_class_new): fix duplication of prepended module. since m_tbl of prepended module is always zero, copy from its copy iclass of original. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_module.rb (TestModule#test_classpath): fixnobu2012-07-311-2/+2
| | | | | | | typos. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: fix r36574nobu2012-07-301-1/+5
| | | | | | | | | | | | | * variable.c (find_class_path): no retry when preferred is given. * variable.c (classname): if classid is set try it to find full qualified class path, and then try arbitrary class path. try tmp_classpath at last even if enclosing namespace is anonymous. fix r36574. [ruby-core:42865][Bug #6078] * variable.c (rb_set_class_path_string, rb_set_class_path): set tmp_classpath instead of classpath if the name is not permanent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: tmp_classpathnobu2012-07-301-0/+17
| | | | | | | | * variable.c: store anonymous class path in tmp_classpath but not in classpath. [ruby-core:42865][Bug #6078] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (rb_mod_class_variables): return inherited variablesshugo2012-07-191-0/+12
| | | | | | | | | except when the optional argument is set to false. [ruby-dev:44034] [Bug #4971] * variable.c (rb_mod_constants): fix typo in documentation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* prepend: fix mixing with includenobu2012-07-021-10/+33
| | | | | | | | | | | | * class.c (rb_include_module): include modules after the origin. * class.c (include_modules_at): skip prepended modules. * class.c (rb_prepend_module): now basic.klass in ICLASS refers the old original class/module. [ruby-dev:45868][Bug #6662] * class.c (rb_mod_ancestors): ditto. * vm_method.c (search_method): search method entry from the origin iclass. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (class_instance_method_list): consider prepended Class/Modulenagachika2012-06-281-0/+6
| | | | | | | | | when recur != 0. [ruby-dev:45863] [Bug #6660] * test/ruby/test_module.rb (test_prepend_instance_methods_false): add a test for it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* prepend: fix ancestors ordernobu2012-06-271-3/+31
| | | | | | | * class.c (rb_mod_ancestors): fix ancestors order. [ruby-core:45919][Bug #6658] [ruby-dev:45861][Bug #6659] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* remove from original m_tblnobu2012-06-271-0/+9
| | | | | | | * vm_method.c (remove_method): remove the method from the original m_tbl on a prepended module. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix null m_tblnobu2012-06-271-0/+6
| | | | | | | * class.c (rb_obj_singleton_methods): m_tbl in prepended class/module is NULL. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ancestor modulesnobu2012-06-271-0/+9
| | | | | | | * class.c (rb_prepend_module): ancestors of prepending module also should be included. [ruby-core:45914][Bug #6654] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix null m_tblnobu2012-06-271-0/+5
| | | | | | | * class.c (class_instance_method_list): m_tbl in prepended class/module is NULL. [ruby-core:45915][Bug #6655] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Module#prependnobu2012-06-271-0/+32
| | | | | | | * class.c (rb_prepend_module): prepend module into another module. * eval.c (rb_mod_prepend): new method Module#prepend. [Feature #1102] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r31873 Module#mixnobu2012-06-251-59/+0
| | | | | | * class.c (rb_mix_module): revert Module#mix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (rb_mod_init_copy): Clear the cached inspect string of adrbrain2012-05-221-0/+25
| | | | | | | | dup'd anonymous module or class. [ruby-trunk - Bug #6454] * test/ruby/test_module.rb (class TestModule): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typonobu2012-03-161-1/+1
| | | | | | * test/ruby/test_module.rb (test_method_redefinition): fix typo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e