Commit bc8fbae
readonly? で IO::Buffer.for のブロックの有無による違いを説明する
ruby/ruby#18062 (マージ済み) で IO::Buffer#readonly? の rdoc が明確化された
のに合わせる。従来の記述は「IO::Buffer.for で作ったバッファ」とだけ書いており、
ブロックを渡した場合に読み取り専用にならない点が抜けていた。
実機 (3.1.6 / 3.2.11 / 3.4.10 / 4.0.6 で同じ) の挙動:
IO::Buffer.for("test").readonly? # => true
IO::Buffer.for("test") { |buf| buf.readonly? } # => false
IO::Buffer.for("test".freeze) { |buf| buf.readonly? } # => true
IO::Buffer.new(4).readonly? # => false
ブロックなしの場合は内部で作った文字列の複製を元にするため、元の文字列が
freeze されていなくても常に読み取り専用になる。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent c01ed72 commit bc8fbae
1 file changed
Lines changed: 15 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | | - | |
452 | | - | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
453 | 458 | | |
454 | 459 | | |
455 | | - | |
456 | | - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
457 | 468 | | |
458 | 469 | | |
459 | 470 | | |
| |||
0 commit comments