Issue #20390 has been updated by byroot (Jean Boussier).
Assignee set to byroot (Jean Boussier)
Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.0:
DONTNEED, 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
Bug #20390: Issue with StringIO and chilled strings
https://bugs.ruby-lang.org/issues/20390#change-107447
* Author: mdalessio (Mike Dalessio)
* Status: Open
* Assignee: byroot (Jean Boussier)
* ruby -v: ruby 3.4.0dev (2024-03-23T16:40:17Z master 8265a7531f) [x86_64-linux]
* Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
StringIO doesn't appear to handle chilled strings in a backwards-compatible way after
12be40ae
```ruby
require "stringio"
sio = StringIO.new("")
sio.write("hello")
```
When not specifying a value for `frozen-string-literal`, the empty string is chilled so I
would expect to get a warning but also expect the write to complete.
Instead, the write fails as if the string is frozen:
```
ruby 3.4.0dev (2024-03-23T16:40:17Z master 8265a7531f) [x86_64-linux]
./issue-stringio-frozen.rb:8:in 'StringIO#write': not opened for writing
(IOError)
from ./issue-stringio-frozen.rb:8:in '<main>'
```
cc @byroot @etienne
--
https://bugs.ruby-lang.org/