diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Jun 29 14:50:08 2015 Shugo Maeda <shugo@ruby-lang.org> + + * eval.c (add_activated_refinement): should not include the original + class. + Mon Jun 29 12:09:10 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org> * README.md: tweak styles. [fix GH-945][ci skip] Patch by @bryndyment @@ -1274,7 +1274,7 @@ add_activated_refinement(VALUE activated_refinements, c = iclass = rb_include_class_new(refinement, superclass); RCLASS_REFINED_CLASS(c) = klass; refinement = RCLASS_SUPER(refinement); - while (refinement) { + while (refinement && refinement != klass) { FL_SET(refinement, RMODULE_IS_OVERLAID); c = RCLASS_SET_SUPER(c, rb_include_class_new(refinement, RCLASS_SUPER(c))); RCLASS_REFINED_CLASS(c) = klass; |