Actions
Bug #21040
closedString#next! method does not mutate $& variable
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24]
Description
String#next!
method should mutate string and return mutated version. For some reason, using it on $&
does not mutate it but still returns new version.
Steps to reproduce (2 different ways):
"123".gsub(/./){$&.next!} # returns "234" as expected
"123".gsub(/./){$&.next!;$&} # returns "123" but should be "234"
"123".gsub(/./){_1.next!;_1} # returns "234" as expected
"123"[/./]
puts $&. # prints 1
puts $&.next! # prints 2
puts $& # prints 1 but should be 2
Actions
Like0
Like0Like0