🤖
[Bug #20421] $~ の値が正しくクリアされないバグ報告
[Bug #20421] String#index and String#byteindex don't clear $~
when offset > size (or bytesize)
-
$~
の値が正しくクリアされないというバグ報告 - 次のように offset の値が対象の文字列のサイズよりも大きいとクリアされない
"a".index(/a/)
p $~ # => #<MatchData "a">
string = "blablabla"
# これはマッチしないので nil を返す
p string.index(/bla/, string.length + 1) # => nil
# しかし $~ の値はそのままになっている
p $~ # => #<MatchData "a">
- この不具合はパッチバージョンにバックポート済み
"a".index(/a/)
p $~ # => #<MatchData "a">
string = "blablabla"
string.index(/bla/, string.length + 1)
p $~
# Ruby 3.2.3, 3.3.0 => #<MatchData "a">
# Ruby 3.2.4, 3.3.1 => nil
- こんなバグがあったんですねー
Discussion