[ruby-core:121377] [Ruby Bug#21159] `Module#set_temporary_name` should freeze given name
From:
"nagachika (Tomoyuki Chikanaga) via ruby-core" <ruby-core@...>
Date:
2025-03-16 07:10:19 UTC
List:
ruby-core #121377
Issue #21159 has been updated by nagachika (Tomoyuki Chikanaga).
Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: DONE to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONE, 3.4: DONE
ruby_3_3 commit:1d3c19871d7a0d05a0f0a80e78cfad843b7ef324 merged revision(s) commit:931ac960b6d11937364b6c4e847fdd575ee67980.
----------------------------------------
Bug #21159: `Module#set_temporary_name` should freeze given name
https://bugs.ruby-lang.org/issues/21159#change-112348
* Author: ko1 (Koichi Sasada)
* Status: Closed
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONE, 3.4: DONE
----------------------------------------
I think it is preferable to freeze the name.
So `#set_temporary_name` should copy and freeze the name string.
```ruby
c = Class.new.set_temporary_name(str = +'<c>')
p c #=> <c>
str.upcase!
p c #=> actual: <C>
#=> expected: <c>
p c.name.frozen?
#=> actual: false
#=> expected: true
```
>>From the Ractor's aspect, shareable modules should refer only immutable string.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/