mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
e09094546a
Previously, if a class included a module and then prepended the same module, the prepend had no effect. This changes the behavior so that the prepend has an effect unless the module is already prepended the receiver. While here, rename the origin_seen variable in include_modules_at, since it is misleading. The variable tracks whether c has been seen, not whether the origin of klass has been. Fixes [Bug #17423]
1.1 KiB
1.1 KiB
NEWS for Ruby 3.1.0
This document is a list of user visible feature changes since the 3.0.0 release, except for bug fixes.
Note that each entry is kept to a minimum, see links for details.
Language changes
Command line options
Core classes updates
Outstanding ones only.
-
Enumerable
- Enumerable#compact is added. [Feature #17312]
-
Enumerator::Lazy
- Enumerator::Lazy#compact is added. [Feature #17312]
-
Module
- Module#prepend now modifies the ancestor chain if the receiver already includes the argument. Module#prepend still does not modify the ancestor chain if the receiver has already prepended the argument. [Bug #17423]
Stdlib updates
Outstanding ones only.
Compatibility issues
Excluding feature bug fixes.
Stdlib compatibility issues
C API updates
Implementation improvements
JIT
RubyVM::MJIT
is renamed toRubyVM::JIT
.