
Issue #20753 has been reported by hanazuki (Kasumi Hanazuki). ---------------------------------------- Bug #20753: [doc] IO::Buffer examples try to write into readonly buffer returned from IO::Buffer.for https://bugs.ruby-lang.org/issues/20753 * Author: hanazuki (Kasumi Hanazuki) * Status: Open * ruby -v: ruby 3.4.0dev (2024-09-18T02:16:22Z master 4797b0704a) +PRISM [x86_64-linux] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- `IO::Buffer.for` without a block returns a readonly `IO::Buffer`. Some examples in the documentation for `IO::Buffer` write into the readonly buffers, which actually raise an `IO::Buffer::AccessError`. From `IO::Buffer#clear`:
``` buffer = IO::Buffer.for('test') # => # <IO::Buffer 0x00007fca40087c38+4 SLICE> # 0x00000000 74 65 73 74 test
buffer.clear # => # <IO::Buffer 0x00007fca40087c38+4 SLICE> # 0x00000000 00 00 00 00 .... ```
From `IO::Buffer#copy`:
``` string= "data: " # => "data: " buffer = IO::Buffer.for(string) buffer.copy(IO::Buffer.for("test"), 5) # => 4 ```
And `IO::Buffer#slice`, which should be fixed along with its implementation #20752 -- https://bugs.ruby-lang.org/