summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2024-02-20 16:45:59 -0500
committerAlan Wu <XrXr@users.noreply.github.com>2024-02-20 21:00:54 -0500
commit2a6917b463fa4065f26aea44802e2e24cc494e4c (patch)
treee16dbdac08c84f921bb6fafad53f3069eebddbcc /test/ruby
parent5fb574ae4e35bdb3688c1c89128c74d24a4c5d23 (diff)
Fix string value in hash literal being forced frozen
We should pass `false` for `hash_key` for value nodes. Credits to `@kddnewton` for noticing and bisecting.
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_literal.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/ruby/test_literal.rb b/test/ruby/test_literal.rb
index 00adbff731..72dcce04e1 100644
--- a/test/ruby/test_literal.rb
+++ b/test/ruby/test_literal.rb
@@ -184,6 +184,11 @@ class TestRubyLiteral < Test::Unit::TestCase
list.each { |str| assert_predicate str, :frozen? }
end
+ def test_string_in_hash_literal
+ hash = eval("# frozen-string-literal: false\n""{foo: 'foo'}")
+ assert_not_predicate(hash[:foo], :frozen?)
+ end
+
if defined?(RubyVM::InstructionSequence.compile_option) and
RubyVM::InstructionSequence.compile_option.key?(:debug_frozen_string_literal)
def test_debug_frozen_string