From: eregontp@... Date: 2020-08-05T21:10:45+00:00 Subject: [ruby-core:99490] [Ruby master Misc#17104] Why are interpolated string literals frozen? Issue #17104 has been updated by Eregon (Benoit Daloze). FWIW I'd be +1 to make interpolated Strings non-frozen by default. It's BTW still the behavior in TruffleRuby to this day, since it seems to cause no incompatibility and is convenient for writing the core library with Ruby code. ---------------------------------------- Misc #17104: Why are interpolated string literals frozen? https://bugs.ruby-lang.org/issues/17104#change-86946 * Author: bughit (bug hit) * Status: Closed * Priority: Normal ---------------------------------------- ```rb #frozen_string_literal: true def foo(str) "#{str}" end fr1 = 'a' fr2 = 'a' fr1_1 = foo(fr1) fr2_1 = foo(fr2) puts fr1.__id__, fr2.__id__, fr1_1.__id__, fr2_1.__id__ puts fr1_1 << 'b' ``` Isn't the point of frozen literals to avoid needless allocations? But interpolated strings are allocated each time, so freezing appears pointless. -- https://bugs.ruby-lang.org/ Unsubscribe: