Bug #21159
closed
`Module#set_temporary_name` should freeze given name
Added by ko1 (Koichi Sasada) 2 months ago.
Updated about 2 months ago.
Description
I think it is preferable to freeze the name.
So #set_temporary_name
should copy and freeze the name string.
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.
- Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: REQUIRED
- Status changed from Open to Closed
Applied in changeset commit:git|931ac960b6d11937364b6c4e847fdd575ee67980.
[Bug #21159] module names should not be modifiable
- Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: REQUIRED to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: DONE
ruby_3_4 commit:ddb73fbd115631e6dec3bdd230c1cfc13027602e.
- 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.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0