
Issue #20350 has been updated by byroot (Jean Boussier).
`Symbol#name` returns frozen string. It is not enough?
It doesn't work well with duck typing. It's common to have a method that call `to_s` on the argument, and the argument can be a Symbol or another type: ```ruby def some_method(arg) arg = arg.to_s # do things end ``` We can debate the merits of such design of course, but from my experience it's extremely common. Years after `Symbol#name` introduction, `Symbol#to_s` remains visible on production profiles, and running https://github.com/Shopify/symbol-fstring/ still provide a small, but noticeable improvement. ---------------------------------------- Feature #20350: Return chilled string from Symbol#to_s https://bugs.ruby-lang.org/issues/20350#change-107915 * Author: Dan0042 (Daniel DeLorme) * Status: Open ---------------------------------------- During Ruby 2.7 development there was an attempt to return a frozen string from Symbol#to_s (#16150#note-22) This had to be rolled back due to incompatibility, but now we have chilled strings (#20205) Symbol#to_s can safely return a chilled string, giving developers time to fix warnings before switching to a frozen string. -- https://bugs.ruby-lang.org/